首页 > 代码库 > epoll 模型测试

epoll 模型测试

测试用例一: ET模式下,EPOLLOUT事件的触发

测试环境:

CentOS release 6.2 (Final)

事件注册:

epoll_ctl( epfd, connfd, EPOLLIN|EPOLLOUT|EPOLLET )

触发:

telnet 连接后,发送两次消息

测试结果:

epoll_wait wake up events number:1=========================================================================[4]
EPOLLIN
EPOLLOUT
recv msg:[kkkkkkkkk
]
ignore poll out event

all events process complate================================================================================[4]


epoll_wait wake up events number:1=========================================================================[5]
EPOLLIN
EPOLLOUT
recv msg:[k
]
ignore poll out event

all events process complate================================================================================[5]

epoll收到两次事件,每个事件均收到 EPOLLIN和EPOLLOUT,如果socket可写,则该事件会伴随其他事件出现

epoll的工作模式应该是:当相关的对象(本例为sock)状态发生变化时(比如由可读触发的变化),epoll会报告该对象的所有的监控状态(由可读引发的状态变化,除了报告可读状态外,还会报告可写状态

 

epoll 模型测试