簡體   English   中英

如何在Java(Android)套接字通信中立即檢測到服務器與客戶端的斷開連接

[英]How to detect the server disconnection to the client immediately in Java(Android) socket communication

我正在進行套接字編程。 有什么方法可以立即檢測到服務器與客戶端的斷開連接。

我使用了socket.isConnected,isBound方法,但是沒有得到很好的結果。

我試圖從流中連續讀取數據以進行檢查,但是它阻止了數據是否不可用或是否從服務器返回,並且我不想編寫垃圾數據來每次發送以檢查與服務器的連接。

請提出任何建議。

這取決於您使用的套接字類型。 即使這樣,也不可避免地要為您的特定目的實現保持活動的機制。

默認的TCP保持活動機制每2小時(!)檢查一次連接是否仍然存在。 可以更改此默認值,但它可能不起作用。 看到:

TCP套接字連接是否具有“保持活動”狀態?

另一方面,UDP是無狀態的。 沒有連接。 應該解釋socket.isConnected()的上下文是它是否綁定到本地端口。

對於UDP,絕對要求來回發送ping / pongs以確定連接性。

希望能幫助到你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM