1. epoll 中使用et方式觸發,隻需EPOLL_CTL_ADD一次,把EPOLLIN EPOLLOUT 事件全注冊,每個socket隻需建立add一次,其事件就會
一直在epoll中,當然,socketclose 後應DEL掉。
2. ET觸發方式是指當fd到狀态發生變化時通知,如read buffer從無到有,write buffer從滿到不滿才會通知。
3. 若要将accept的檔案描述符添加到epoll,那麼同樣需要将socket設定為nonblock,調用accept時要循環讀,直到EWOULDBLOCK發生。
4. socket 無論是read/write事件,均需要循環讀,知道EWOULDBLOCK發生。
5. accept 觸發too many open file 時,accept到buffer已滿,若close掉一些socket,仍然不能接受新連接配接,參見第2條,是以需要調用EPOLL_CTL_MOD重新觸發accept事件,還一個簡單方案,監聽用到fd注冊epoll是使用LT觸發。
示例代碼:
<a href="http://code.google.com/p/ffown/source/browse/#svn%2Ftrunk">https://ffown.googlecode.com/svn/trunk</a>