『壹』 伺服器怎麼判斷心跳包
用sendUrgentData這個來判斷服務端是否異常關閉
想實現自動連接服務端,如果用
socket=newSocket("192.168.1.4",1821);
socket.connect();
只有每次去new創建這個sock對象,因為只有sock對象創建好了才由輸入輸出流
目前的實現方式就是,
1.在原有的基礎上,再開多一個線程,專門負責發送心跳,
2.先睡眠500毫秒,
3.用socket.sendUrgentData(FF),給服務端,
4.如果服務端異常關閉的話,我就捕捉這個異常。。。
5.循環
心跳的意思就是每隔一段時間,客戶端給伺服器發一段消息:
1、客戶端:伺服器,我還活著,你死了沒
2、伺服器:客戶端,我知道你還活著這個信息,我已經記錄下來了,同時告訴你我也還活著
更多問題到問題求助專區http://bbs.hounwang.com/
『貳』 什麼是心跳伺服器IP,有什麼作用
心跳網路。伺服器組機器之間私網
一般存在於伺服器集群、多機並行時用的。
是伺服器組各個機器之間傳遞信息用的。
比如故障轉移集群伺服器的心跳。集群網路是對外正常工作通訊的,心跳網路就是A\B機之間傳遞信息,相互驗證對方是否還在正常運行用的。比如平時是A機在運行服務,A、B機之間會每隔一段時間通過心跳網詢問對方是否還正常,如果A伺服器宕機了,B得不到回應,就行把集群資源拿過來繼續運行服務。
『叄』 什麼是TCP/IP通訊中的心跳包
心跳包就是在客戶端和伺服器間定時通知對方自己狀態的一個自己定義的命令字,按照一定的時間間隔發送,類似於心跳,所以叫做心跳包。
心跳包在GPRS通信和CDMA通信的應用方面使用非常廣泛。數據網關會定時清理沒有數據的路由,心跳包通常設定在30-40秒之間。
所謂的心跳包就是客戶端定時發送簡單的信息給伺服器端告訴它我還在而已。代碼就是每隔幾分鍾發送一個固定信息給服務端,服務端收到後回復一個固定信息如果服務端幾分鍾內沒有收到客戶端信息則視客戶端斷開。
(3)伺服器心跳地址是什麼擴展閱讀:
心跳包作用:
在TCP的機制裡面,本身是存在有心跳包的機制的,也就是TCP的選項。系統默認是設置的是2小時的心跳頻率。但是它檢查不到機器斷電、網線拔出、防火牆這些斷線。而且邏輯層處理斷線可能也不是那麼好處理。一般,如果只是用於保活還是可以的。
心跳包一般來說都是在邏輯層發送空的包來實現的。下一個定時器,在一定時間間隔下發送一個空包給客戶端,然後客戶端反饋一個同樣的空包回來,伺服器如果在一定時間內收不到客戶端發送過來的反饋包,那就只有認定說掉線了。只需要send或者recv一下,如果結果為零,則為掉線。
但是,在長連接下,有可能很長一段時間都沒有數據往來。理論上說,這個連接是一直保持連接的,但是實際情況中,如果中間節點出現什麼故障是難以知道的。更要命的是,有的節點(防火牆)會自動把一定時間之內沒有數據交互的連接給斷掉。