青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Prayer

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

如何判斷socket已經斷開

Posted on 2009-04-14 16:22 Prayer 閱讀(29254) 評論(5)  編輯 收藏 引用 所屬分類: SOCKET
最近在做一個服務器端程序,C/S結構。功能方面比較簡單就是client端與server端建立連接,然后發送消息給server。我在server端會使用專門的線程處理一條socket連接。這就涉及到一個問題,如果socket連接斷開(異常,正常)后,我如何才能感知到?server端這邊是絕對被動的,sever端不能主動斷開連接。也沒有連接鏈路維持包之類的。client端發送數據的時間也是不定的。在socket連接斷開后, server要能夠感知到并釋放資源。
這個問題在思考測試,詢問同事之后,找到了一個方法,可以做到這一點。
當使用 select()函數測試一個socket是否可讀時,如果select()函數返回值為1,且使用recv()函數讀取的數據長度為0 時,就說明該socket已經斷開。
為了更好的判定socket是否斷開,我判斷當recv()返回值小于等于0時,socket連接斷開。但是還需要判斷 errno是否等于 EINTR 。如果errno == EINTR 則說明recv函數是由于程序接收到信號后返回的,socket連接還是正常的,不應close掉socket連接。

PS:對于堵塞socket的recv函數會在以下三種情況下返回:
(1)recv到數據時,會返回。
(2)在整個程序接收到信號時,返回-1。errno = EINTR。//在程序的起始階段,屏蔽掉信號的除外。部分信號還是屏蔽不掉的。
(3)socket出現問題時,返回-1.具體錯誤碼看 man recv()
(4)一定要看 man 說明,很詳細,很有幫助。
這種方法經過長時間測試后,是有效的。所以寫出來讓大家參考一下,請大家發表意見。

Feedback

# re: 如何判斷socket已經斷開  回復  更多評論   

2009-04-14 22:26 by Sunshine Alike
我最近也要寫一個這方面類似的程序,有空可以交流一下

# re: 如何判斷socket已經斷開  回復  更多評論   

2009-06-29 11:38 by czg
@Sunshine Alike
如果select返回的是0的話,那該怎么判斷了

# re: 如何判斷socket已經斷開  回復  更多評論   

2010-01-18 09:54 by sue
我的方法不一樣,我用getsockopt來判斷,還是蠻準確的
int SocketConnected(int sock)
{
if(sock<=0)
return 0;
struct tcp_info info;
int len=sizeof(info);
getsockopt(sock, IPPROTO_TCP, TCP_INFO, &info, (socklen_t *)&len);
if((info.tcpi_state==TCP_ESTABLISHED))
{
//myprintf("socket connected\n");
return 1;
}
else
{
//myprintf("socket disconnected\n");
return 0;
}
}

# re: 如何判斷socket已經斷開[未登錄]  回復  更多評論   

2010-03-01 15:26 by su
我是用sue的方法,但是觀察日志覺得好像有不準確的情況。因為客戶端在斷開后十幾秒后程序重連還是能夠重新連上的(注:局域網環境)。我也有看到判斷為斷開后,重連也連不上的情況。這使我對他將信將疑。

# re: 如何判斷socket已經斷開  回復  更多評論   

2010-12-09 09:25 by happy
@su

socket(阻塞)沒有數據可讀時,select超時,不會去recv(),要怎么判斷socket斷開連接?
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美日韩亚洲成人| 你懂的亚洲视频| 亚洲欧洲日夜超级视频| 久久国内精品视频| 一区二区三区成人精品| 在线欧美日韩精品| 国产区精品在线观看| 欧美日韩精品免费观看视频完整 | 国产精品卡一卡二卡三| 欧美 日韩 国产一区二区在线视频 | 欧美ab在线视频| 欧美自拍丝袜亚洲| 亚洲一二区在线| 亚洲精品在线看| 亚洲国产裸拍裸体视频在线观看乱了中文 | 99精品国产99久久久久久福利| 老司机精品视频一区二区三区| 翔田千里一区二区| 亚洲新中文字幕| 夜夜嗨av一区二区三区 | 欧美一二三视频| 亚洲图片自拍偷拍| 一区二区三区欧美| 日韩视频免费观看高清在线视频| 亚洲国产精品va在看黑人| 黄色成人91| 国内一区二区在线视频观看| 国产精品外国| 国产精品亚洲精品| 国产精品久久亚洲7777| 国产精品成人一区二区三区吃奶| 欧美久久电影| 欧美日韩国产系列| 欧美日韩一区二区三区在线| 欧美日韩免费观看中文| 欧美日韩精品免费观看视频| 欧美日韩国产91| 欧美私人啪啪vps| 欧美体内谢she精2性欧美| 欧美日韩亚洲在线| 国产精品国产三级国产aⅴ9色| 欧美日韩一区二区免费视频| 欧美性猛交99久久久久99按摩| 欧美精品一卡二卡| 欧美日韩一区三区四区| 国产精品av久久久久久麻豆网| 国产精品久久久久久久app| 国产精品国产三级国产aⅴ9色| 国产精品视频免费观看| 国产一区二区久久久| 在线观看欧美成人| 日韩视频免费观看| 亚洲女爱视频在线| 久久久久成人网| 欧美搞黄网站| av成人免费观看| 午夜视频精品| 久久在线精品| 欧美日韩国产限制| 国产日韩精品在线观看| 在线成人黄色| 一区二区三区国产精华| 欧美亚洲免费高清在线观看| 久久综合精品一区| 91久久久精品| 亚洲女人天堂成人av在线| 久久久久国产精品麻豆ai换脸| 欧美电影免费观看高清| 国产精品伦子伦免费视频| 伊人蜜桃色噜噜激情综合| 夜夜夜精品看看| 久久久久久一区二区| 亚洲欧洲日产国码二区| 午夜视频一区在线观看| 欧美成人黑人xx视频免费观看| 国产精品久久久久毛片软件| 在线观看亚洲| 亚洲综合日韩| 欧美大片免费看| 亚洲一区二区三区精品视频 | av成人国产| 久久久久免费观看| 亚洲美女诱惑| 久久亚洲色图| 国产女人18毛片水18精品| 亚洲精品国产系列| 久久久久久久久久看片| 日韩一区二区福利| 久久久一本精品99久久精品66| 欧美日韩亚洲一区二区三区在线观看 | 久久国产精品一区二区| 欧美日韩国产色视频| 在线成人黄色| 久久国产精品久久国产精品| 亚洲精品女人| 久久激情五月丁香伊人| 欧美网站在线| 亚洲美女色禁图| 久久露脸国产精品| 亚洲影院高清在线| 欧美日韩裸体免费视频| 亚洲激情婷婷| 美女在线一区二区| 亚洲欧美日韩中文播放| 欧美日韩一区在线观看视频| 亚洲激情综合| 欧美成人精品| 久久久夜夜夜| 狠狠网亚洲精品| 久久黄色影院| 亚洲主播在线| 国产精品国产三级国产aⅴ9色 | 亚洲视频每日更新| 欧美精品一区二区久久婷婷| 亚洲成色777777女色窝| 久久亚洲一区二区三区四区| 亚洲综合视频1区| 国产精品捆绑调教| 亚洲视频在线观看免费| 亚洲精品在线观| 欧美精品成人在线| 亚洲精品国久久99热| 欧美国产日韩亚洲一区| 久久久久欧美| 在线观看一区| 免费在线欧美视频| 久久综合久久综合这里只有精品| 一区二区亚洲| 蜜桃av噜噜一区| 久热国产精品视频| 亚洲国产成人精品久久久国产成人一区 | 午夜欧美视频| 香蕉成人啪国产精品视频综合网| 国产精品视频一区二区三区| 欧美一区二区播放| 欧美在线看片a免费观看| 国产性天天综合网| 老司机午夜精品视频在线观看| 久久九九热re6这里有精品| 狠狠久久婷婷| 欧美电影免费观看高清| 欧美高清你懂得| 99视频精品全国免费| 日韩视频一区二区在线观看| 欧美视频四区| 欧美在线观看日本一区| 久久激情五月婷婷| 亚洲国产高清在线| 亚洲七七久久综合桃花剧情介绍| 欧美另类一区二区三区| 亚洲女性裸体视频| 欧美一区二区三区在线免费观看| 韩国成人福利片在线播放| 欧美成人四级电影| 欧美日韩黄色一区二区| 欧美一区二区三区精品电影| 欧美在现视频| 亚洲三级电影在线观看| 一区二区三区日韩欧美| 国产在线观看91精品一区| 欧美国产精品专区| 欧美色欧美亚洲另类二区| 久久久99精品免费观看不卡| 麻豆久久精品| 亚洲曰本av电影| 久久精品一区二区三区四区| 99国产精品自拍| 欧美伊人精品成人久久综合97 | 欧美福利精品| 午夜视频在线观看一区二区三区| 久久久国际精品| 亚洲午夜激情网站| 欧美一区亚洲| 中文日韩欧美| 久久久噜噜噜久久中文字免| 亚洲无线视频| 久久午夜影视| 先锋亚洲精品| 欧美激情精品久久久久久黑人 | 亚洲图片欧洲图片av| 久久久久久九九九九| 亚洲午夜电影| 免费看av成人| 久久精品五月婷婷| 欧美日韩免费在线观看| 蜜臀久久99精品久久久画质超高清| 欧美精品免费看| 久久午夜精品一区二区| 国产精品户外野外| 亚洲高清久久久| 国内外成人免费视频| 亚洲少妇在线| 亚洲乱码国产乱码精品精可以看| 午夜亚洲一区| 亚洲一区国产一区| 欧美激情视频网站| 免费日韩av片| 国产深夜精品| 亚洲一区二区三区久久| 一本色道久久88综合亚洲精品ⅰ|