2

我正在尝试查找 ping 时间(使用 Windows 8、Java 6)。我正在使用 System.currentTimeMillis() 方法来查找 ping 时间,但它返回一个奇怪的值。例如,当我 ping 本地主机时,它会返回 1000 毫秒。

请帮助我创建一个查找主机 ping 时间的例程。

public int pingHost(String host){
    Long start = System.currentTimeMillis();
    if (!InetAddress.getByName(host).isReachable(2000)) return -1;
    return (int) (System.currentTimeMillis()-start);
}

PS这个问题不是How to do a true J​​ava ping from Windows? 对我来说,仅检查主机是否在线是不够的。我需要测量连接速度并找到“ping 时间”值。

4

1 回答 1

0

该代码似乎正确,并在我的操作系统(Ubuntu Linux 内核 3.0.0-16)下为本地主机打印 4 毫秒。但是isReachable已知在 Windows 平台上存在问题。如果您需要 ping 正在侦听已知端口的服务器,请改写尝试打开 TCP/IP 连接。

于 2013-06-01T17:08:15.247 回答