接触过live555的童鞋都知道,live555是单线程的,用的是select模型;前几天预研了下多线程改造的问题,select模型受限于FD_SETSIZE,然后看到 下面一段注释:
如果剧情到这就结束了也就没有lz这篇blog了,下面就是大家喜闻乐见的情节:
有一次跟群里的童鞋扯淡,聊到live555多线程问题,这位童鞋表示即使改了epoll也没有解决问题,然后lz就一脸懵B了
/*
* Select uses arrays of SOCKETs. These macros manipulate such
* arrays. FD_SETSIZE may be defined by the user before including
* this file, but the default here should be >= 64.
*
* CAVEAT IMPLEMENTOR and USER: THESE MACROS AND TYPES MUST BE
* INCLUDED IN WINSOCK2.H EXACTLY AS SHOWN HERE.
*/
#ifndef FD_SETSIZE
#define FD_SETSIZE 64
#endif /* FD_SETSIZE */
这段注释是windows WinSock2.h文件里的,只要修改FD_SETSIZE就提高MediaServer的路数了,想想项目中估计最多也就100路,顿时喜出望外,这样就不用像一些文章那样那么复杂地改造成多线程了,so easy ;如果剧情到这就结束了也就没有lz这篇blog了,下面就是大家喜闻乐见的情节:
有一次跟群里的童鞋扯淡,聊到live555多线程问题,这位童鞋表示即使改了epoll也没有解决问题,然后lz就一脸懵B了