ネットワーク上の特定のホストが到達可能かどうかを確認しようとしています。私のJavaコードは次のとおりです。
InetAddress adr = InetAddress.getByName(host);
if(adr.isReachable(3000)){
System.out.println(host + " is reachable");
}
これは非常にうまく機能しますが、代わりにタイムアウトを 500 ミリ秒に下げると、ホストが到達可能であることが示されなくなります。かなりの数のホストをループでチェックする予定なので、タイムアウトを短くすることは非常に重要です。Windows コマンド ラインから手動でホストに ping を実行すると、10 ミリ秒もかかりません。
では、なぜ Java メソッドが成功するために、はるかに長いタイムアウトが必要なのでしょうか? を使用する代替手段はありますisReachable()
か?