日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

拔掉网线时Socket的检查方法

發布時間:2025/3/21 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 拔掉网线时Socket的检查方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
最近在做有關于TCP采集程序時,發現在客戶端與服務器通過TCP socket進行通信的時候,如果客戶端應用程序正常或者異常退出時,服務器都可以在對應的socket通信連接上獲得響應(如返回0,或者拋出異常)。但是,如果在客戶端的網線被拔掉的情況下,那么默認情況下,服務器端需要很長的時間才會知道客戶端的網線斷掉。對于許多服務器應用程序來說,這么長的反應時間是不能允許的,在這種情況下通常使用“心跳機制”來解決類似的問題,這是一種可行的辦法。 由于TCP采集程序只是通過長連接來接收消息,而不能與客戶端建立心跳機制,所以唯一可行的辦法就是設置超時機制,在非阻塞模式工作的情況下,可以通過空閑計數來判斷是否連接超時,在連接空閑情況下TCP采集程序會休眠10ms,并且空閑計數器加1,當收到數據時空閑計數器清零,因此當空閑計數達到3000次的時候,說明socket連接在30秒內沒有收到數據,此時認為連接超時,主動的斷開連接,釋放socket資源。如何檢查Socket是否斷開

最近在做一個TCP采集程序,使用到C/S的結構。功能比較的簡單,就是TCP采集程序作為服務器,信令采集設備作為客戶端,客戶端與服務器端之間建立長連接之后,開始發送信令報文給服務器。在服務器端使用多線程方式來處理每個客戶端的socket連接,服務器端不主動斷開鏈路,也沒有心跳機制來維護連接的狀態,客戶端發送數據的時間也是不一定的,只要有采集到信令數據時才進行發送。在客戶端socket斷開后,服務器端應該能夠知道并且釋放socket資源。

判斷socket是否已經斷開的方法是使用非阻塞的select方式進行socket檢查,步驟如下:

1)設置接收到的socket為異步方式;

2)使用select()函數測試一個socket是否可讀;

3)如果select()函數返回的值為1,但是使用recv()函數讀取的數據長度為0,那么說明該socket已經斷開。

如果recv()返回值小于等于0時,客戶端的連接已經斷開,但是還需要判斷errno是否等于EINTR。如果errno=EINTR則說明recv()函數是由于程序接收到中斷信號后返回的,socket連接應該還是正常,步應該close掉socket連接。

?????? 注:對于阻塞socket的recv函數會在以下三種情況下返回值:

1)接收到數據時會返回;

2)程序接收到信號時返回-1,errno=EINTR;

3)Socket出現問題時,返回-1,具體的錯誤碼請查看man recv;

4)一定要養成查看man說明,內容很詳細,很有幫助。

這種方法經過長時間的測試證明是有效的,僅供大家參考。

此外,UNP卷一上有很多socket異常情況下的模擬解釋,大家可以去閱讀下。如果網絡中間有多級路由,路由當掉等很多情況出現,所以建議程序中在應用層中加入心跳(heartbeat機制)和重連來維持連接的狀態。

TCP protocol has a timer to determine if the connection is abnormally closed. But this timeout value is very long by default and if you want to check this situation as soon as possible to improve performance, the best solution is to introduce a keepalive mechanism in application protocol design.

TCP協議有一個定時器來決定連接是否被異常關閉。但是該超時時間值缺省的情況下會非常長,如果你希望盡快的檢查出這種狀態改進性能,最好的方法就是在應用程序協議設計的時候引入keepalive(保持連接)機制。

總結

以上是生活随笔為你收集整理的拔掉网线时Socket的检查方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日本理论片午伦夜理片在线观看 | 岛国激情| 男插女视频免费 | 伊人久久久 | 色欲一区二区三区精品a片 在线观看黄网站 | 欧美αv | 男人激情网 | 久久久精品视频在线观看 | 总裁边开会边做小娇妻h | 欧美性猛交 | 亚洲伦理天堂 | 与亲女洗澡时伦了毛片 | 国产免费看 | аⅴ资源中文在线天堂 | 特级西西444www大精品视频 | 国产精品一区二三区 | 亚洲性网站 | 国产又黄又爽 | 在线免费一区 | 视色网| 久久老司机 | 影音先锋丝袜制服 | 色妞在线 | 国产精品无码无卡无需播放器 | 精品三级在线 | 91在线| 在线播放免费av | 国产1区2区在线观看 | 337p日本欧洲亚洲大胆精筑 | 免费吸乳羞羞网站视频 | 爱福利视频一区二区 | 一本一道av | 男人天堂网在线视频 | 电影桑叶2在线播放完整版 222aaa | 日日av| 日韩一区二区中文字幕 | 五月开心播播网 | 亚洲伦理影院 | 欧类av怡春院 | 97精品人妻麻豆一区二区 | 国产精品久久久久久久久夜色 | 九色在线观看 | av调教 | 校园sm主奴调教1v1罚视频 | 亚洲精品国产精品国自产在线 | 超碰在97 | 四虎国产成人永久精品免费 | 日本爽爽 | 欧美精品日韩 | 非洲黄色一级片 | 男性裸体全身精光gay | 欧美日韩国产在线一区 | 国产区网址 | 日韩欧美精品在线 | 国产精品久久999 | 欧美日韩精品网站 | 少妇被躁爽到高潮无码人狍大战 | 欧美日韩精品一区二区三区四区 | 国内精品亚洲 | 性一交一黄一片 | 欧美 在线 | 亚洲成人激情小说 | 精品久久久中文字幕人妻 | 午夜精品福利影院 | 亚洲成人第一区 | 欲色综合 | 在线欧美| 日本一区视频在线播放 | 欧美日韩综合一区 | 欧美大片一区二区 | 欧洲精品码一区二区三区免费看 | 91资源站 | 日本丰满bbwbbw厨房 | 女同性αv亚洲女同志 | 91香蕉视频在线观看免费 | 黄色一级免费网站 | 亚洲色图15p| 国产午夜精品免费一区二区三区视频 | 亚洲自拍电影 | 欧美影院在线 | 狠狠综合一区 | 国产综合视频在线观看 | av中文在线资源 | 亚洲美女黄色 | 成年在线视频 | 最新中文字幕av专区 | 91在线国产观看 | 久久77 | 新91av| 亚洲精品国产av | japanese在线观看 | 中文字幕一区二区在线视频 | 国产日韩精品一区二区三区在线 | 真实乱偷全部视频 | 精品无码久久久久成人漫画 | 免费看污黄网站在线观看 | 西西久久 | 国产91精品久久久久久久 | 国产精品久久久久久亚洲 |