EPOLL可以用來查詢網(wǎng)絡(luò)事件(數(shù)據(jù)到達(dá),數(shù)據(jù)發(fā)送,連接建立,連接斷開。。。);但有一點需要注意,EPOLL在查詢接收數(shù)據(jù)的時候不是針對每個包一個事件的,實際上其是在連續(xù)到達(dá)的數(shù)據(jù)包時可能只有一個事件,這取決于應(yīng)用接收數(shù)據(jù)的速度;如果應(yīng)用沒有將到達(dá)的數(shù)據(jù)從協(xié)議層接收完全,新到達(dá)的數(shù)據(jù)就不會就不會觸發(fā)EPOLL事件。
因此,應(yīng)用在接收數(shù)據(jù)的時候需要不停的調(diào)用recv(socket API)知道得到一個錯誤;只有這樣新的數(shù)據(jù)包到達(dá)的時候才會重新產(chǎn)生EPOLL事件。