荔枝FM Everyone can be host
一般是用來判斷對方(設備,進程或其它網元)是否正常動行,一般采用定時發送簡單的通訊包,如果在指定時間段內未收到對方響應,則判斷對方已經當掉。用于檢測TCP的異常斷開。
基本原因是服務器端不能有效的判斷客戶端是否在線也就是說,服務器無法區分客戶端是長時間在空閑,還是已經掉線的情況.所謂的心跳包就是客戶端定時發送簡單的信息給服務器端告訴它我還在而已。
代碼就是每隔幾分鐘發送一個固定信息給服務端,服務端收到后回復一個固定信息 如果服務端幾分鐘內沒有收到客戶端信息則視客戶端斷開。比如有些通信軟件長時間不使用,要想知道它的狀態是在線還是離線就需要心跳包,定時發包收包。
發包方:可以是客戶也可以是服務端,看哪邊實現方便合理。一般是客戶端。服務器也可以定時輪詢發心跳下去。 一般來說,出于效率的考慮,是由客戶端主動向服務器端發包,而不是相反。 示例代碼:
posted on 2007-12-07 17:43 都市淘沙者 閱讀(3178) 評論(0) 編輯 收藏 所屬分類: Java Basic/Lucene/開源資料
Powered by: BlogJava Copyright © 都市淘沙者