繁体   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