S.l.e!ep.¢%

像打了激速一样,以四倍的速度运转,开心的工作
简单、开放、平等的公司文化;尊重个性、自由与个人价值;
posts - 1098, comments - 335, trackbacks - 0, articles - 1
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

关于epoll检测异步连接的方法

Posted on 2010-11-20 22:59 S.l.e!ep.¢% 阅读(630) 评论(0)  编辑 收藏 引用 所属分类: epoll
关于epoll检测异步连接的方法
2009年12月09日 星期三 11:28
    因为epoll本身没有明确提出当异步connect成功之后会返回什么样的信号,那就测试,试验呗。
1,当本地还没调用connect函数,却将套接字送交epoll检测,epoll会产生一次 EPOLLOUT | EPOLLHUP, 也就是产生一个值为0x14的events.
2,当本地connect事件发生了,但建立连接失败,则epoll会产生一次 EPOLLIN | EPOLLERR | EPOLLHUP, 也就是一个值为0x19的events.
3,当connect函数也调用了,而且连接也顺利建立了,则epoll会产生一次 EPOLLOUT, 值为0x4,即表明套接字已经可写。
因而,要判断连接建立,只需要判断该套接字有可写属性且仅有可写属性即可。
PS:本例中使用的epoll采用ET模式。

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理