Wie implementieren Sie Ihre eigene Methode InetAddress.isReachable (String address, int port, int timeout) in Java?

Veröffentlicht: 2020-10-06
Implementieren Sie Ihre eigene InetAddress.isReachable-Methode in Java

In Java gibt es mehrere Möglichkeiten, Ping und Port zu überprüfen. Sie können den Ping-Befehl des Systemstandard, das native InetAddress -Dienstprogramm von Java, HttpURLConnection und einige mehr verwenden.

Wenn Sie in der Produktion oder Ihrer Testumgebung mehrere Portprüfungen durchführen möchten, sagen wir Hunderte von Prüfungen gleichzeitig, erhält die Methode InetAddress.isReachable() manchmal keine korrekte Antwort.

Infect In meinem Fall habe ich beim Versuch, eine Verbindung zu www.google.com herzustellen, einen 100-prozentigen Ausfall festgestellt. Haben Sie eine der folgenden Fragen?

  • java – Warum gibt InetAddress.isReachable false zurück, wenn ich die IP-Adresse pingen kann?
  • Wie überprüfe ich, ob ich eine Internetverbindung habe?
  • Java-Codebeispiele für java.net.InetAddress.isReachable()
  • Java prüfen, ob die IP-Adresse erreichbar ist
  • Wie teste ich, ob ein entferntes System erreichbar ist?

Befolgen Sie dieses Tutorial, wenn Sie eine Ping-Prüfung mit HttpURLConnection.openConnection() durchführen möchten.

In diesem Tutorial gehen wir auf 2 verschiedene Möglichkeiten zur Durchführung der Ping-Prüfung ein:

  1. InetAddress.isReachable(timeout)-Methode
  2. Crunchifys crunchifyAddressReachable(host, port, timeout) -Methode, die 100 % der Zeit funktioniert

Lass uns anfangen:

  1. Erstellen Sie die Klasse CrunchifyInetAddressIsReachable.java.
  2. Wir werden 2 Methoden pingCheckbyInetAddressisReachable() und pingCheckbyCrunchifyisReachable() erstellen, in denen wir die oben genannten 2 verschiedenen Tests durchführen.

Welche Methode verwenden wir crunchifyAddressReachable()?

Wir verwenden java.net.Socket in unserer Implementierung. Die Socket-Klasse implementiert Client-Sockets. Mit Hilfe des Dienstprogramms connect() erhalten wir zu 100 % ein korrektes Ergebnis. Bitte werfen Sie einen Blick auf den folgenden Code für weitere Details.

CrunchifyInetAddressIsReachable.java

Sobald Sie den Code in die Eclipse-Umgebung kopiert haben, führen Sie ihn einfach als Java-Anwendung aus, um das folgende Ergebnis zu sehen.

Konsolenausgabe: