如何检查Java中是否存在Internet连接?你如何检查你是否可以通过java连接到互联网?一种方法是:final URL url = new URL("http://www.google.com");final URLConnection conn = url.openConnection();... if we got here, we should have net ...但是,是否有更适合执行该任务的东西,特别是如果您需要经常进行连续检查并且极有可能丢失互联网连接?
3 回答
BIG阳
TA贡献1859条经验 获得超6个赞
您应该连接到实际应用程序所需的位置。否则,您正在测试您是否与某个无关的地方有联系(在这种情况下为Google)。
特别是,如果您正在尝试与Web服务进行通信,并且如果您可以控制Web服务,那么拥有某种廉价的“获取状态”Web方法将是一个好主意。通过这种方式,您可以更好地了解您的“真实”通话是否可行。
在其他情况下,只打开一个应该打开的端口的连接可能就足够了 - 或者发送ping。InetAddress.isReachable
可能是适合您需求的API。
杨__羊羊
TA贡献1943条经验 获得超7个赞
人们建议使用INetAddress.isReachable。问题是某些站点配置其防火墙以阻止ICMP Ping消息。因此,即使Web服务可访问,“ping”也可能会失败。
当然,反过来也是如此。即使Web服务器已关闭,主机也可能会响应ping。
当然,由于本地防火墙限制,计算机可能无法直接连接到某些(或所有)Web服务器。
根本问题是“可以连接到互联网”是一个定义不明确的问题,如果没有这样的事情很难测试:
有关用户机器和“本地”网络环境的信息,以及
有关应用程序需要访问的信息。
因此,一般来说,最简单的解决方案是让应用程序只是尝试访问它需要访问的任何内容,并依靠人工智能来进行诊断。
添加回答
举报
0/150
提交
取消