![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
epoll
weixin_38070782
这个作者很懒,什么都没留下…
展开
-
Linux的epoll使用LT+非阻塞IO和ET+非阻塞IO区别
使用epoll是否需要将socket设置为nonblocking? 取决于你使用的触发方式, 如果你使用水平触发(Level-triggered) 那么此时的epoll相当于高级的select, 你的论述是对的, 是不需要一定将socket设置为非阻塞的; 然而, 当你使用边缘触发(Edge-triggered) 那么此时从业务的完整性考虑, 是建议将socket设置为nonbocking模式, 并且在读写触发EAGAIN之后再进行epoll_wait. 来解释一下水平触发和边缘触发, 类似于数字电路当中转载 2020-05-31 13:47:17 · 476 阅读 · 0 评论 -
EPOLLIN , EPOLLOUT , EPOLLPRI, EPOLLERR 和 EPOLLHUP事件
1、listen fd,有新连接请求,对端发送普通数据触发EPOLLIN。 2、带外数据,只触发EPOLLPRI。 3、对端正常关闭(程序里close(),shell下kill或ctr+c),触发EPOLLIN和EPOLLRDHUP,但是不触发EPOLLERR 和EPOLLHUP。 再man epoll_ctl看下后两个事件的说明,这两个应该是本端(server端)出错才触发的。 5、对端异常断开连接(只测了拔网线),没触发任何事件。 附man: EPOLLIN 连接到达;有数据来临; Th...原创 2020-05-30 14:19:15 · 1259 阅读 · 0 评论