2013-06-01 39 views
2

我正在嘗試查找ping時間(使用Windows 8,Java 6)。我使用System.currentTimeMillis()方法來查找ping時間,但它返回一個奇怪的值。例如,當我ping本地主機時,它返回1000毫秒。如何查找主機ping時間

請幫我創建一個找到主機ping時間的例程。

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

P.S.這個問題不是dublicate How to do a true Java ping from Windows? 這是不夠的,我只是檢查是主機在線或不。我需要測量連接速度並找到「ping時間」值。

+0

你可以試試下面的帖子是否有幫助 http://stackoverflow.com/questions/8816870/i-want-to-get-the-ping-execution-time-and-result-in- ping-host-rq = 1 –

+0

只需使用副本的解決方案並測量時間。 – JJJ

回答

0

該代碼似乎是正確的,併爲我的操作系統(Ubuntu Linux kernel 3.0.0-16)下的本地主機打印4毫秒。但是,isReachable已知在Windows平臺上有問題。如果您需要對正在偵聽已知端口的服務器執行ping操作,請改爲僅嘗試打開TCP/IP連接。

+0

謝謝你的回答。我也會在Linux上測試這個代碼。 – fromgate