java - 在 Java 中,如何在不使用 DNS 的情况下测试网络连接?

标签 java networking

我们有一个在可移植设备上运行的 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/

相关文章:

java - Java 编码图像解码输出中出现奇怪的 Ascii 字符

networking - 在 Haskell 中列出网络接口(interface)

python - celery worker 与经纪人断开连接

java - 如何用 Java 创建简单的 UDP 客户端-服务器通信?

c++ - 文件同步库

java - randomUUID 是否提供唯一 ID?

java - Java 中 findInLine 方法中的字符串模式

linux - 获取广域网 IP : difference between HTTP and DNS

java - Java中的加权随机性

java - 在Netty中发送不带 "\n"的字符串