Posted on 2010-11-20 22:59
S.l.e!ep.¢% 閱讀(639)
評論(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模式。
|