摘要: unsigned int i =10;for(i;i > 0; i--) {xxxxx}因为i是unsigned int 类型的,永远不可能小于0,也就是说是个死循环了。 阅读全文
posted @ 2014-05-05 21:50 superPerfect 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 判断是否是root用户,若不是则提示并退出。建立server socket。等待用户连接,并建立相应用户的子进程。 阅读全文
posted @ 2014-04-27 20:53 superPerfect 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 为什么没有采用多线程或者IO复用,原因是在多线程或IO复用的情况下,当前目录是共享的,无法根据每一个连接来拥有自己的当前目录。多进程模式下,一个连接拥有2个进程,一个是nobody进程,一个是服务进程。为什么使用nobody进程的原因是:在PORT模式下,服务器会主动建立数据通道连接客户端,服务器可... 阅读全文
posted @ 2014-04-27 20:52 superPerfect 阅读(602) 评论(0) 推荐(0) 编辑
摘要: ascall文件可以打开让我们看你们的具体内容。二进制文件打开我们看到的就是一堆乱码。ascall在换行时不同的平台不一样:windows上面用 \r\nlinux上面用 \n二进制的内容在不同的平台都是一样的,不存在差异。ascall文件在不同平台传输时,换行符会发生变化。 阅读全文
posted @ 2014-04-23 21:53 superPerfect 阅读(511) 评论(0) 推荐(0) 编辑
摘要: 条件变量的意义在于:1.多个线程对一个保护的资源进行控制的时候, 当一个线程A进入临界区,发现此时需要等待这个资源满足某个条件而阻塞。这个时候因为阻塞的地方是在临界区里面,所以其他线程也无法操纵这个资源使之满足A线程的条件,从而导致线程A永远阻塞在这里。2.为了解决这个问题,可以使用条件变量 当线程... 阅读全文
posted @ 2014-04-14 10:07 superPerfect 阅读(303) 评论(0) 推荐(0) 编辑
摘要: 现看看效果如何:方法如下:定义相关颜色的宏 1 #define ESC_START "\033[" 2 #define ESC_END "\033[0m" 3 #define COLOR_FATAL "31;40;5m" 4 #define COLOR_ALERT... 阅读全文
posted @ 2014-03-24 19:31 superPerfect 阅读(3707) 评论(0) 推荐(0) 编辑
摘要: zlog简述:log是一个高性能、线程安全、灵活、概念清晰的纯C日志函数库。事实上,在C的世界里面没有特别好的日志函数库(就像JAVA里面的的log4j,或者C++的log4cxx)。C程序员都喜欢用自己的轮子。printf就是个挺好的轮子,但没办法通过配置改变日志的格式或者输出文件。syslog是... 阅读全文
posted @ 2014-03-22 16:23 superPerfect 阅读(14005) 评论(1) 推荐(0) 编辑
摘要: 1.添加一个socket任务1 envir().taskScheduler().setBackgroundHandling(socketNum, SOCKET_WRITABLE|SOCKET_EXCEPTION,2 (TaskScheduler::BackgroundHandlerProc*)&connectionHandler, this);2.接下来就会把相关参数设置进socket任务集合中去,接下来就是等待任务调度。 fHandlers->assignHandler(socketNum, conditionSet, ha... 阅读全文
posted @ 2014-03-19 15:57 superPerfect 阅读(2059) 评论(0) 推荐(0) 编辑
摘要: live555 中存在这5个最基本的类。每个类中都拥有一个BasicUsageEnvironment。这是这几个类之间的相互关系。 MediaSession可以拥有多个subsession。 阅读全文
posted @ 2014-03-19 10:34 superPerfect 阅读(270) 评论(0) 推荐(0) 编辑
摘要: 使用到主要函数有:#include int epoll_create(int size);int epoll_create1(int flags);int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event);int epoll_wait(int epfd, struct epoll_event *events, int maxevents, int timeout);typedef union epoll_data { void *ptr; int fd; uint32_t u32; uint64_t u64;}... 阅读全文
posted @ 2014-03-17 23:46 superPerfect 阅读(544) 评论(0) 推荐(0) 编辑