1. 程式人生 > >心跳包(檢測不可檢測斷線)

心跳包(檢測不可檢測斷線)

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

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


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

程式碼就是每隔幾分鐘傳送一個固定資訊給服務端,服務端收到後回覆一個固定資訊
如果服務端幾分鐘內沒有收到客戶端資訊則視客戶端斷開。比如有些通訊軟體長時間不使用,要想知道它的狀態是線上還是離線就需要心跳包,定時發包收包。

發包方:可以是客戶也可以是服務端,看哪邊實現方便合理。一般是客戶端。伺服器也可以定時輪詢發心跳下去。

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