我實現的方式用下面的代碼來獲得Java中的RTT在UNIX系統上旁邊的方式:計算往返時間在Java中有一個IP地址,ping命令
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。
'InetAddress.isReachable'(您可能需要根在Linux的ICMP,但它已經退卻上TCP)。不過,你最好打開一個普通的TCP套接字。 – bestsss 2011-02-28 19:32:26
我已經試過isReachable,但失敗慘敗。比平還差。我也認爲,打開一個插座將是解決方案,但我需要一個特定的端口連接。 – Gianni 2011-03-01 12:24:36