Java Socket:已远程关闭连接

时间:2014-06-19 13:00:44

标签: android sockets networking client-server

我目前正在编写一个需要客户端 - 服务器通信的程序,服务器是办公室中的一台机器,客户端将是Android设备。客户端将连接到服务器并等待数据发送给它们。客户端将一次运行几个小时,并且需要持续连接。根据研究,我发现开放式连接不会使收音机保持全功率状态,所以我很乐意保持这种连接畅通无阻。这一切我已经完成并且工作正常。我的问题是当服务器关闭/丢失网络连接等时.Android客户端不知道连接何时关闭。

在我的研究中,我发现Java Socket API不知道连接何时被服务器关闭/丢失连接(请参阅Java socket API: How to tell if a connection has been closed?)以获取信息。正如一些回复(以及我见过的其他来源)中所建议的,建议使用心跳来测试"连接。这给Android带来了一个问题,因为心跳方法可能导致额外的电池使用,显然是需要避免的。

在我开始编写任何代码之前,我研究过Google云消息传递,但由于我所写软件的要求,云消息传递不合适(由于节流)。

由于软件和应用程序的最终用户的要求,我知道大多数时候Android设备将连接到电源,因此电池耗尽问题可以被认为是静音!但是,我宁愿继续关注电池保护方面的最佳实践。

在这方面,有没有人知道一种方法来判断连接是否仍然是开放的,当然除了心跳方法?

干杯。

0 个答案:

没有答案