我正在尝试查找ping时间(使用Windows 8、Java 6)。我使用System.currentTimeMillis()方法来查找ping时间,但它返回了一个奇怪的值。例如,当我pinging一个本地主机时,它返回1000ms。
请帮我创建一个查找主机ping时间的例程。
public int pingHost(String host){
Long start = System.currentTimeMillis();
if (!InetAddress.getByName(host).isReachable(2000)) return -1;
return (int) (System.currentTimeMillis()-start);
}附注:这个问题不是一个重复的How to do a true Java ping from Windows?,它对我来说是不够的,只是检查一下主机在线或不在线。我需要测量连接速度并找到一个"ping time“值。
发布于 2013-06-02 01:08:15
该代码似乎是正确的,并在mine操作系统(Ubuntu Linux kernel 3.0.0-16)下为本地主机打印4毫秒。然而,众所周知,isReachable在Windows平台上存在问题。如果您需要ping正在侦听已知端口的服务器,只需重写以尝试打开TCP/IP连接即可。
https://stackoverflow.com/questions/16874935
复制相似问题