当前位置: 技术问答>linux和unix
epoll可读的问题
来源: 互联网 发布时间:2016-11-07
本文导语: 问题1、当客服端多时,上线,下线人也多时,会出接收缓存池有数据,但是没有去接收。 用的是LT模式 造成整个服务器阻塞那里,这是为什么? 别外一个问题就是: 当服务器运行一小段时间以后,已连接的客...
问题1、当客服端多时,上线,下线人也多时,会出接收缓存池有数据,但是没有去接收。
用的是LT模式
造成整个服务器阻塞那里,这是为什么?
别外一个问题就是:
当服务器运行一小段时间以后,已连接的客服端正常运行,但是新连接上不去
用的是LT模式
造成整个服务器阻塞那里,这是为什么?
别外一个问题就是:
当服务器运行一小段时间以后,已连接的客服端正常运行,但是新连接上不去
|
程序问题了。
想问一下:你是把监听socket交给epoll管理的吗?也就是非阻塞监听,不用另外起监听线程?
这样的话,你在服务器listen之前,调用fcntl,设置为非阻塞,
然后,epoll_ctl注册EPOLL_IN事件,
因为有了新连接,该socket可读,你就可以调用accept函数
想问一下:你是把监听socket交给epoll管理的吗?也就是非阻塞监听,不用另外起监听线程?
这样的话,你在服务器listen之前,调用fcntl,设置为非阻塞,
然后,epoll_ctl注册EPOLL_IN事件,
因为有了新连接,该socket可读,你就可以调用accept函数
|
是不是没有把accept到的 fd 注册到 epoll ?