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