我已经使用以下代码在 unix 系统上实现了一种在 Java 中获取 RTT 的方法:
String command[] = {"ping", "-c4", theIPAddress};
ProcessBuilder pb = new ProcessBuilder(command);
pb.redirectErrorStream(true);
Process p = pb.start();
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
while((line = in.readLine()) != null)
//the terminal output with the ping results...
etc...
这工作正常,我可以用输出计算以毫秒为单位的 RTT(延迟)。但是,如果主机阻止了 ICMP,则 ping 将超时。(即使在 Mac OS X 终端或 Windows CMD 中。)
现在我想找到一种替代方法来以某种方式获取 IP 地址的 RTT/延迟。(我不想在主机端安装软件。)如果您不能提供 Java 示例,请给我其他输入。我可以在多种语言之间进行翻译,而且我真的可以使用 Google。