epoll 的各个事件触发条件测试
文章目录
- listen fd,有新连接请求,触发
EPOLLIN
。 - 对端发送普通数据,触发
EPOLLIN
。 - 带外数据,只触发
EPOLLPRI
。 - 对端正常关闭(程序里 close(),shell 下 kill 或 ctrl+c),触发
EPOLLIN
和EPOLLRDHUP
,但是不触发EPOLLERR
和EPOLLHUP
。关于这点,以前一直以为会触发EPOLLERR
或者EPOLLHUP
。 - 再
man epoll_ctl
看下后两个事件的说明,这两个应该是 Server 端出错才触发的。 - 对端异常断开连接(只测了拔网线),没触发任何事件。