小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

使用epoll的ET模式下的tcp服務(wù)處理特點(diǎn)

 shaolong007 2009-08-12
我們知道ET模式下的事件觸發(fā)需要遇到EAGAIN結(jié)束,那么在tcp服務(wù)中不管是listen socket還是data socket,都需要做相應(yīng)處理,特別是listen socket ,很容易被遺漏 , 新連接未處理,從而出現(xiàn)close_wait狀態(tài)的socket 。
另外錯(cuò)誤識(shí)別上,EAGAIN和EINTR一定要處理好,如果是主動(dòng)連接的data socket 在non-block下還要處理EINPROGRESS 。
listen socket 處理
    while(1)
    {
        
int cfd = accept(GetFD(),(sa_t*)&caddr,&clen) ;
        
if ( cfd  == -1  ) 
        {
            
if ( errno == EAGAIN ) return 0 ;
            //other else  continue or close the socket
            //
else if ( errno == EINTR ) continue ;
            //return -1 ;
        }
        set_nonblock(cfd) ;
        
//set_sock_nodelay(cfd) ;
        
//set_sock_linger(cfd) ;
        if ( OnNewClient(cfd) != 0 )
        {
            close(cfd) ;
        }
    }

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多