Come implementare il proprio metodo InetAddress.isReachable (String address, int port, int timeout) in Java?

Pubblicato: 2020-10-06
Implementa il tuo metodo InetAddress.isReachable in Java

In Java ci sono diversi modi per controllare il ping e il controllo delle porte. È possibile utilizzare il comando ping di default del sistema, l'utilità InetAddress del metodo nativo di Java, HttpURLConnection e altro ancora.

In produzione o nell'ambiente di test, se desideri eseguire più controlli delle porte, diciamo centinaia di controlli contemporaneamente, a volte il metodo InetAddress.isReachable() non ottiene una risposta corretta.

Infect nel mio caso, ho notato un errore del 100% durante il tentativo di connessione a www.google.com. Hai una delle seguenti domande?

  • java – Perché InetAddress.isReachable restituisce false, quando posso eseguire il ping dell'indirizzo IP?
  • Come verificare se ho una connessione Internet?
  • Esempi di codice Java per java.net.InetAddress.isReachable()
  • java controlla se l'indirizzo IP è raggiungibile
  • Come verificare se un sistema remoto è raggiungibile?

Segui questo tutorial se desideri eseguire il controllo del ping utilizzando HttpURLConnection.openConnection()

In questo tutorial esamineremo 2 diversi modi per eseguire il controllo Ping:

  1. Metodo InetAddress.isReachable(timeout).
  2. Il metodo crunchifyAddressReachable(host, port, timeout) di Crunchify che funziona il 100% delle volte

Iniziamo:

  1. Crea classe CrunchifyInetAddressIsReachable.java.
  2. Creeremo 2 metodi pingCheckbyInetAddressisReachable() e pingCheckbyCrunchifyisReachable() in cui eseguiremo sopra 2 diversi test.

Quale metodo stiamo usando crunchifyAddressReachable()?

Stiamo usando java.net.Socket nella nostra implementazione. La classe Socket implementa i socket client. Con l'aiuto dell'utilità connect() otteniamo il 100% delle volte un risultato corretto. Si prega di dare un'occhiata al codice sottostante per maggiori dettagli.

CrunchifyInetAddressIsReachable.java

Dopo aver copiato il codice nell'ambiente Eclipse, esegui semplicemente come applicazione Java per vedere il risultato seguente.

Uscita console: