日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

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

 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 。
另外錯誤識別上,EAGAIN和EINTR一定要處理好,如果是主動連接的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) ;
        }
    }

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

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多