epoll_wait返回事件的测试

本文介绍了epoll_wait返回的EPOLLIN、EPOLLOUT、EPOLLRDHUP、EPOLLHUP和EPOLLERR事件,详细解释了这些事件在不同情况下的触发条件。特别是EPOLLRDHUP在对端正常关闭时触发,EPOLLHUP在接收到RST时不仅触发EPOLL_ERR,还会伴随EPOLLRDHUP和EPOLLIN/EPOLLOUT。同时,提到了EPOLLERR在收到RST时触发,并探讨了超时是否也会触发该事件的可能性。
摘要由CSDN通过智能技术生成

由epoll返回的事件可以有EPOLLIN,EPOLLOUT,EPOLLRDHUP,EPOLLPRI,EPOLLERR,EPOLLHUP。

 

关于EPOLLIN,EPOLLOUT,EPOLLPRI相信大家都熟悉,EPOLLIN代表有数据可读,EPOLLOUT代表可写,EPOLLPRI代表有带外数据可读。

 

接下来让我们关注一下EPOLLRDHUP,EPOLLERR,EPOLLHUP事件什么时候会发生呢:

EPOLLRDHUP:对端正常关闭的时候会触发该事件以及EPOLL_IN事件

EPOLLHUP:对端发来RST会触发该事件和EPOLL_ERR事件以及EPOLLRDHUP,EPOLLIN, EPOLLOUT

EPOLLERR:目前测试的收到RST会触发该事件(超时事件不知道会不会触发,没测试,麻烦有测试过的交流下,谢谢了)

 

下面是测试代码:

服务器端:如果想要测试自己想测试的时间,改一下ev.events就可以了


#include<sys/types.h>
#include<sys/socket.h>
#include<stdio.h>
#include<string.h>
#include<arpa/inet.h>
#include<errno.h>
#include<unistd.h>
#include <sys/epoll.h>
#include<fcntl.h>
#include<sys/epoll.h>
#include<assert.h>


int createSocket(sa_family_t family){

	int fd = s
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值