编程语言
首页 > 编程语言> > unix网络编程POLLRDHUP坑

unix网络编程POLLRDHUP坑

作者:互联网

这两个事件其实是一个东西,分别对应poll和epoll,通常用来判断对端是否关闭,但是当你对某个socket注册POLLIN和POLLRDHUP(EPOLLIN和EPOLLRDHUP)时,在对端关闭时,对于poll来说会一直触发POLLIN + POLLRDHUP事件,epoll也会触发EPOLLIN + EPOLLRDHUP事件,是否一直触发要看epoll是工作在LT模式下还是ET模式下。

所以,当我们使用POLLRDHUP(EPOLLRDHUP)事件来判断对端是否关闭时,POLLRDHUP(EPOLLRDHUP)事件的处理应放在POLLIN(EPOLLIN)事件的前面,避免将对端关闭当做一次读事件,而无法处理POLLRDHUP(EPOLLRDHUP)事件。

标签:EPOLLIN,EPOLLRDHUP,epoll,编程,unix,POLLIN,事件,POLLRDHUP
来源: https://www.cnblogs.com/yuanjiex/p/16245366.html