• <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>

            Prayer

            在一般中尋求卓越
            posts - 1256, comments - 190, trackbacks - 0, articles - 0
              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

            請教如何判斷socket客戶端斷開

            Posted on 2008-12-11 19:58 Prayer 閱讀(2457) 評論(0)  編輯 收藏 引用 所屬分類: SOCKET
            我寫了一個socket的客戶端和服務器端,請問服務器端如何判斷客戶端已經斷開連接了
            如果客戶端結束進程,會發出FIN,但是如果是網線撥了,服務器就不知道了。借樓主的貼討論一下:
            1.如果撥掉網線的時候服務哭正在阻塞讀,且沒有設置超時選項,它會阻塞多久才能知道不可達?
            2.如果。。。。。。。。。。正在阻塞寫,。。。。。。。。。。。。。。。。。。。。。。。?
            (也沒有設置KEEP_ALIVE)
            我用心跳機制來防止拔網線這中情況
            client每間隔M秒發一個心跳包給server
            若連續N秒server端沒有收到client的心跳包,則認為client已經去見馬克思了
            一般應該這樣:

            1、心跳。
            2、非阻塞方式。阻塞方式是不方便判斷諸如:網線斷開這樣的異常情況的。說“不方便”,就因為還是依賴于程序的實現是怎么樣的。
            QUOTE:
            原帖由 linuxxinetd 于 2007-8-21 20:22 發表
            進程是這樣可以的。但我用的是線程,客戶端和服務器端都有兩個收發線程,客戶端發送線程退出,服務器的收線程怎么知道啊?

            服務器的收線程的 recv函數會返回0
            精品国产乱码久久久久软件| 国内精品九九久久久精品| 99久久人人爽亚洲精品美女 | 97久久精品人人澡人人爽| 久久久久99精品成人片| 国产亚洲精品久久久久秋霞| 国产人久久人人人人爽| 精品久久久久久无码中文字幕| 人妻无码αv中文字幕久久琪琪布 人妻无码精品久久亚瑟影视 | 久久久久久久综合综合狠狠| 亚洲狠狠婷婷综合久久久久| 国产AⅤ精品一区二区三区久久| 久久国产欧美日韩精品| 天天久久狠狠色综合| 色诱久久久久综合网ywww| 久久久久久噜噜精品免费直播| 久久99精品久久只有精品| 伊人久久成人成综合网222| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 亚洲午夜久久久影院| 91精品国产综合久久香蕉 | 影音先锋女人AV鲁色资源网久久| 久久综合九色综合精品| 五月丁香综合激情六月久久| 欧美激情精品久久久久久| 久久精品国产精品亚洲下载| 久久国产热精品波多野结衣AV| 国产精品久久久久久久app| 久久人人爽人人精品视频| 久久免费精品视频| 秋霞久久国产精品电影院| 久久91精品久久91综合| 久久久精品一区二区三区| 国内精品久久国产大陆| 97精品国产91久久久久久| 国产精品久久网| 丰满少妇人妻久久久久久4| 国内精品伊人久久久久网站| 久久国产成人亚洲精品影院| 久久WWW免费人成—看片| 久久免费99精品国产自在现线|