我试图找出我网络上的特定主机是否可以访问。我的java代码如下:
InetAddress adr = InetAddress.getByName(host);
if(adr.isReachable(3000)){
System.out.println(host + " is reachable");
}
这工作得很好,但是如果我将超时时间降低到 500 毫秒,它将不再指定主机可达。我计划在一个循环中检查相当多的主机,因此低超时非常重要。如果我从 Windows 命令行手动 ping 主机,它需要不到 10 毫秒。
那么为什么 Java 方法需要更高的超时时间才能成功呢?有没有使用的替代品isReachable()
?