Тайм-аут Java InetAddress.isReachable ()
Я пытаюсь выяснить, доступны ли определенные узлы в моей сети. Мой код Java выглядит следующим образом:
InetAddress adr = InetAddress.getByName(host);
if(adr.isReachable(3000)){
System.out.println(host + " is reachable");
}
Это работает довольно хорошо, однако, если я уменьшу время ожидания до 500 мс, это больше не будет обозначать достижимый хост. Я планирую проверить несколько хостов в цикле, поэтому очень важно иметь малое время ожидания. Если я пингую хост вручную из командной строки Windows, это займет менее 10 мс.
Так почему же метод Java требует гораздо более высокого времени ожидания для успеха? Есть ли альтернативы использованиюisReachable()
?