Javaで独自のInetAddress.isReachable(String address、int port、int timeout)メソッドを実装する方法は?

公開: 2020-10-06
Javaで独自のInetAddress.isReachableメソッドを実装する

Javaでは、pingとポートチェックをチェックする方法が複数あります。 システムデフォルトのpingコマンド、JavaのネイティブメソッドInetAddressユーティリティ、 HttpURLConnectionなどを使用できます。

本番環境またはテスト環境で、複数のポートチェックを同時に実行する場合、たとえば数百のチェックを同時に実行する場合、 InetAddress.isReachable()メソッドが正しい応答を取得しないことがあります。

私の場合、感染します。www.google.comに接続しようとしたときに、100%の失敗に気づきました。 以下の質問はありますか?

  • java – IPアドレスにpingを実行できるのに、InetAddress.isReachableがfalseを返すのはなぜですか?
  • インターネットに接続しているかどうかを確認するにはどうすればよいですか?
  • java.net.InetAddress.isReachable()のJavaコード例
  • javaはIPアドレスが到達可能かどうかをチェックします
  • リモートシステムが到達可能かどうかをテストするにはどうすればよいですか?

HttpURLConnection.openConnection()を使用してpingチェックを実行する場合は、このチュートリアルに従ってください。

このチュートリアルでは、Pingチェックを実行する2つの異なる方法について説明します。

  1. InetAddress.isReachable(timeout)メソッド
  2. CrunchifyのcrunchifyAddressReachable(host, port, timeout)メソッドは、100%の時間で機能します

始めましょう:

  1. クラスCrunchifyInetAddressIsReachable.javaを作成します。
  2. 2つのメソッドpingCheckbyInetAddressisReachable()とpingCheckbyCrunchifyisReachable()を作成し、上記の2つの異なるテストを実行します。

crunchifyAddressReachable()を使用しているメソッドは何ですか?

実装ではjava.net.Socketを使用しています。 Socketクラスはクライアントソケットを実装します。 connect()ユーティリティの助けを借りて、100%の時間正しい結果を得ることができます。 詳細については、以下のコードをご覧ください。

CrunchifyInetAddressIsReachable.java

コードをEclipse環境にコピーしたら、Javaアプリケーションとして実行するだけで以下の結果が表示されます。

コンソール出力: