2013-06-01 5 views
2

Я пытаюсь найти время ping (используя Windows 8, Java 6). Я использую метод System.currentTimeMillis(), чтобы найти время ping, но он возвращает странные значения. Например, когда я пинговаю localhost, он возвращает 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? Мне не достаточно просто проверить хост онлайн или нет. Мне нужно измерить скорость соединения и найти значение времени «пинга».

+0

Вы можете попробовать следующие сообщения, если это помогает http://stackoverflow.com/questions/8816870/i-want-to-get-the-ping-execution-time-and-result-in- string-after-ping-host? rq = 1 –

+0

Просто используйте решение дубликата и измерьте время. – JJJ

ответ

0

Код кажется правильным и печатает 4 миллисекунды для локального хоста под моей операционной системой (ядро Ubuntu Linux 3.0.0-16). Однако, как известно, isReachable имеет проблемы на платформах Windows. Если вам нужно выполнить ping на вашем сервере, который прослушивает известный порт, перепишите, просто попробуйте открыть TCP/IP-соединение.

+0

Благодарим вас за ответ. Я также проверю этот код на Linux. – fromgate

Смежные вопросы