InetAddress.getByName(ip).isReachable(timeout);

Posted

技术标签:

【中文标题】InetAddress.getByName(ip).isReachable(timeout);【英文标题】: 【发布时间】:2013-04-23 08:00:12 【问题描述】:

InetAddress.getByName(ip).isReachable(2000) 用于在 2 秒内找到系统的可达性。但是当我试图找到多个系统的可达性时(比如 n系统)在我的网络中串行,它需要 2n 秒。有没有其他方法,让我可以在更短的时间内找到它们的可达性,比如 3 到 4 秒?

【问题讨论】:

同时使用多个线程 @Extreme Coders 感谢您的回复。但是,除了线程还有其他方法吗? 查看this帖子 【参考方案1】:

您可以使用 jnetpcap 自己制作 ping 数据包,并听取响应。 您可以(几乎)一次将所有 ping 请求发送到网络,并在(稍长于)2 秒内完成。 不过,您需要知道 mac 地址。

【讨论】:

以上是关于InetAddress.getByName(ip).isReachable(timeout);的主要内容,如果未能解决你的问题,请参考以下文章

完美解决Android InetAddress.getByName(ip).isReachable(timeout) 一直返回false 的方案

完美解决Android InetAddress.getByName(ip).isReachable(timeout) 一直返回false 的方案

在java中,InetAddress.getLocalHost() 和 InetAddress.getByName("127.0.0.1") 有啥区别

网络通信

java 怎么根据指定ip获取主机的名称

InetAddress创建对象的方法