epoll 模型测试

Posted RushoutAsia

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 模型测试的主要内容,如果未能解决你的问题,请参考以下文章

epoll模型的探索与实践

epoll模型与select模型的区别

IOCP模型EPOLL模型的比较以及游戏服务器端的一些建议

Linux 即时聊天系统(tcp)epoll 版

nginx基于epoll模型事件驱动流程详解

epoll反应堆模型