• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆-167  評論-8  文章-0  trackbacks-0
            在send(),recv()過程中有時由于網絡狀況等原因,收發不能預期進行,而設置收發超時控制:
            在Linux下需要注意的是時間的控制結構是struct timeval而并不是某一整型數,以下是來自于網上一篇文章中的摘錄,它是這樣寫的:
            int nNetTimeout=1000;//1秒,
            //設置發送超時
            setsockopt(socket,SOL_SOCKET,SO_SNDTIMEO,(char *)&nNetTimeout,sizeof(int));
            //設置接收超時
            setsockopt(socket,SOL_SOCKET,SO_RCVTIMEO,(char *)&nNetTimeout,sizeof(int));
            這樣做在Linux環境下是不會產生效果的須如下定義:struct timeval timeout = {3,0}; 
             
            //設置發送超時
            setsockopt(socket,SOL_SOCKET,SO_SNDTIMEO,(char *)&timeout,sizeof(struct timeval));
            //設置接收超時
            setsockopt(socket,SOL_SOCKET,SO_RCVTIMEO,(char *)&timeout,sizeof(struct timeval));
            有兩點注意就是
            1)recv ()的第四個參數需為MSG_WAITALL,在阻塞模式下不等到指定數目的數據不會返回,除非超時時間到。還要注意的是只要設置了接收超時,在沒有MSG_WAITALL時也是有效的。說到底超時就是不讓你的程序老在那兒等,到一定時間進行一次返回而已。
            2)即使等待超時時間值未到,但對方已經關閉了socket, 則此時recv()會立即返回,并收到多少數據返回多少數據。
            posted on 2010-03-31 15:22 老馬驛站 閱讀(1777) 評論(0)  編輯 收藏 引用 所屬分類: c++
            麻豆精品久久精品色综合| 99久久无色码中文字幕人妻| 老色鬼久久亚洲AV综合| 久久综合亚洲色一区二区三区| 少妇无套内谢久久久久| 久久综合88熟人妻| 91精品国产综合久久四虎久久无码一级| 亚洲国产精品久久久久婷婷老年| 久久午夜福利电影| 久久av无码专区亚洲av桃花岛| 成人综合伊人五月婷久久| 日韩久久久久中文字幕人妻| 色欲久久久天天天综合网| 91久久成人免费| 亚洲人成伊人成综合网久久久| 久久久久久久综合日本亚洲| 香蕉久久夜色精品国产尤物| 久久电影网2021| 中文字幕久久久久人妻| 久久91这里精品国产2020| 久久久久久久亚洲Av无码| 亚洲国产成人精品久久久国产成人一区二区三区综 | 亚洲AV无码久久| 国产精品成人99久久久久| 久久久久成人精品无码中文字幕| 日韩久久无码免费毛片软件| 伊人久久综在合线亚洲2019| 国产精品99久久免费观看| 久久久久亚洲AV无码专区首JN| 久久国产一片免费观看| 大蕉久久伊人中文字幕| 91精品国产色综久久| 久久国产精品99久久久久久老狼| 亚洲中文字幕久久精品无码喷水| 中文成人久久久久影院免费观看| 国产精品久久久久久久午夜片| 国内精品久久国产大陆| 91精品国产综合久久婷婷| 国产成人久久精品一区二区三区| 亚洲愉拍99热成人精品热久久| 久久精品综合网|