我们有一个在可移植设备上运行的 Java 应用程序,而我们正在使用的 JVM (CReMe) 似乎存在一个错误,即它会缓存负 DNS 查找,即使我们告诉它不要这样做。因此,当我们尝试连接到服务器时,由于尚未建立网络连接而导致 DNS 查找失败,应用程序就会被卡住,因为即使连接恢复,它也永远不会再次执行查找。
我们尝试通过打开硬编码 IP 地址的 Socket 进行测试,但显然不能保证给定的 IP 地址将来不会改变。谁能建议另一种方法来验证我们是否具有网络连接?
最佳答案
您可以拥有 IP 列表并尝试打开连接。它们可以是 LAN 上计算机的 IP,也可以是 Google 或 Facebook 的 IP。
如果您无法连接到列表中的任何 IP,则可以假设网络已关闭。
网络启动后,您可以通过 DNS 查找更新列表。
关于java - 在 Java 中,如何在不使用 DNS 的情况下测试网络连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4799064/