我正在進行套接字編程。有沒有辦法立即檢測服務器與客戶端的斷開連接。如何在Java(Android)套接字通信中立即檢測服務器與客戶端斷開連接
我用socket.isConnected,isBound方法,但我沒有得到好的結果。
我試圖不斷地從流中讀取數據來檢查,但是它阻止瞭如果數據不可用或從服務器返回並且我不想每次都發送垃圾數據來檢查與服務器。
請提出建議。
我正在進行套接字編程。有沒有辦法立即檢測服務器與客戶端的斷開連接。如何在Java(Android)套接字通信中立即檢測服務器與客戶端斷開連接
我用socket.isConnected,isBound方法,但我沒有得到好的結果。
我試圖不斷地從流中讀取數據來檢查,但是它阻止瞭如果數據不可用或從服務器返回並且我不想每次都發送垃圾數據來檢查與服務器。
請提出建議。
這取決於您使用的是哪種套接字類型。即便如此,爲您的特定目的實施保活機制也是不可避免的。
如果連接仍然存在,默認的TCP保持連接機制每2小時檢查一次(!)。此默認值可以更改,但可能無法使用。請參見:另一方面
Does a TCP socket connection have a "keep alive"?
UDP是無狀態的;沒有聯繫。 socket.isConnected()應該解釋的上下文是它是否綁定到本地端口。
對於UDP來說,絕對需要來回發送ping/pongs來確定連通性。
希望它有幫助。
您是否在談論TCP?還是UDP? – EJP
我正在談論TCP套接字連接 – Prabal