Posted on 2010-11-20 22:59
S.l.e!ep.¢% 閱讀(638)
評(píng)論(0) 編輯 收藏 引用 所屬分類:
epoll
關(guān)于epoll檢測異步連接的方法
2009年12月09日 星期三 11:28
??? 因?yàn)閑poll本身沒有明確提出當(dāng)異步connect成功之后會(huì)返回什么樣的信號(hào),那就測試,試驗(yàn)唄。 1,當(dāng)本地還沒調(diào)用connect函數(shù),卻將套接字送交epoll檢測,epoll會(huì)產(chǎn)生一次 EPOLLOUT | EPOLLHUP, 也就是產(chǎn)生一個(gè)值為0x14的events. 2,當(dāng)本地connect事件發(fā)生了,但建立連接失敗,則epoll會(huì)產(chǎn)生一次 EPOLLIN | EPOLLERR | EPOLLHUP, 也就是一個(gè)值為0x19的events. 3,當(dāng)connect函數(shù)也調(diào)用了,而且連接也順利建立了,則epoll會(huì)產(chǎn)生一次 EPOLLOUT, 值為0x4,即表明套接字已經(jīng)可寫。 因而,要判斷連接建立,只需要判斷該套接字有可寫屬性且僅有可寫屬性即可。 PS:本例中使用的epoll采用ET模式。
|