久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1900|回復: 0
收起左側

心跳檢測

[復制鏈接]
ID:107189 發表于 2016-3-5 19:58 | 顯示全部樓層 |閱讀模式


一、什么是心跳檢測

判斷對方(設備,進程或其它網元)是否正常動行,一般采用定時發送簡單的通訊包,如果在指定時間段內未收到對方響應,則判斷對方已經當掉。用于檢測TCP的異常斷開。

基本原因是服務器端不能有效的判斷客戶端是否在線也就是說,服務器無法區分客戶端是長時間在空閑,還是已經掉線的情況。所謂的心跳包就是客戶端定時發送簡單的信息給服務器端告訴它我還在而已。

代碼就是每隔幾分鐘發送一個固定信息給服務端,服務端收到后回復一個固定信息。如果服務端幾分鐘內沒有收到客戶端信息則視客戶端斷開。比如有些通信軟件長時間不使用,要想知道它的狀態是在線還是離線就需要心跳包,定時發包收包。
發包方可以是客戶也可以是服務端,看哪邊實現方便合理。[size=+0]一般是客戶端。服務器也可以定時輪詢發心跳下去。

一般來說,出于效率的考慮,是由客戶端主動向服務器端發包,而不是相反。

二、關于Send函數的返回值

我們知道當客戶端以優雅的方式斷開TCP連接后,服務器使用Send函數發包,得到的返回值為0(說明TCP連接已斷開)。然而,SEND函數的成功返回只能表示發送數據已經進入了SOCKET內核的發送隊列,不一定就已經在線上或者已經被成功接收了。這可能是因為send只是往發送緩沖區拷貝數據, 剛開始緩沖區還未滿,所以不會有錯誤發生, 只有等到相當一段長的時間后, send的返回值才會為-1。

三、定時Ping

如果服務器不能進行心跳檢測的應答。可以采用定時Ping某服務器來檢測TCP連接是否斷開,如新浪(必須允許Ping的服務器)。PING是向遠程主機發送一個ICMP包,如果給定時間內沒有接收到回應就認為是超時,如果收到回應則分析接收到的ICMP包,得到TTL、類型以及用時。

不過Ping包有32字節,如果是無線連接,有時需要考慮流量問題。



回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91视频网址 | 激情一区| 亚洲一一在线 | 一区二区三区欧美 | 天天躁日日躁狠狠躁2018小说 | 久热精品免费 | 美女久久久久久久 | 成人国产精品久久久 | 国产精品高潮呻吟 | 国产在线精品一区二区三区 | 亚洲v区 | 91福利网址 | 日韩久久久久久 | 欧美一级在线视频 | 五月激情六月婷婷 | 久久久久久久久久久久亚洲 | 一区二区三区久久 | 亚洲一区二区视频在线观看 | 欧美精品福利视频 | a级毛片国产 | 免费一区二区 | 亚洲欧美在线一区 | 99热精品6| 黄色片在线免费看 | 欧美日在线| 91色视频在线观看 | 国内精品久久久久久久 | 亚洲国产情侣自拍 | 日韩在线一区二区 | 91在线视频免费观看 | jlzzjlzz国产精品久久 | 欧美一级免费 | 日韩精品亚洲专区在线观看 | 美日韩免费视频 | 国产激情在线 | 日本一区视频在线观看 | 精品一二三区 | 久久久久国产一区二区三区四区 | 91新视频 | 国产高清免费视频 | 欧美精品一区久久 |