Cum să implementați propria metodă InetAddress.isReachable(String address, int port, int timeout) în Java?

Publicat: 2020-10-06
Implementați propria metodă InetAddress.isReachable în Java

În Java există mai multe moduri de a verifica ping-ul și portul. Puteți utiliza comanda ping implicită a sistemului, utilitarul InetAddress pentru metoda nativă Java, HttpURLConnection și altele.

În producție sau în mediul dvs. de testare, dacă doriți să efectuați mai multe verificări de porturi, să spunem sute de verificări în același timp, uneori metoda InetAddress.isReachable() nu primește un răspuns corect.

Infectează în cazul meu, am observat un eșec 100% în timp ce încercam să mă conectez la www.google.com. Aveți vreo întrebare de mai jos?

  • java – De ce InetAddress.isReachable returnează false, când pot ping adresa IP?
  • Cum verific dacă am conexiune la internet?
  • Exemple de cod Java pentru java.net.InetAddress.isReachable()
  • java verifica daca adresa ip este accesibila
  • Cum se testează dacă un sistem de la distanță este accesibil?

Urmați acest tutorial dacă doriți să efectuați verificarea ping folosind HttpURLConnection.openConnection()

În acest tutorial vom parcurge 2 moduri diferite de a efectua verificarea Ping:

  1. Metoda InetAddress.isReachable(timeout).
  2. Metoda crunchifyAddressReachable a lui crunchifyAddressReachable(host, port, timeout) care funcționează 100% din timp

Să începem:

  1. Creați clasa CrunchifyInetAddressIsReachable.java.
  2. Vom crea 2 metode pingCheckbyInetAddressisReachable() și pingCheckbyCrunchifyisReachable() în care vom efectua mai sus 2 teste diferite.

Ce metodă folosim crunchifyAddressReachable()?

Utilizăm java.net.Socket în implementarea noastră. Clasa Socket implementează socket-uri client. Cu ajutorul utilitarului connect() obținem 100% din timp un rezultat corect. Vă rugăm să aruncați o privire la codul de mai jos pentru mai multe detalii.

CrunchifyInetAddressIsReachable.java

După ce copiați codul în mediul Eclipse, rulați ca aplicație Java pentru a vedea rezultatul de mai jos.

Ieșire consolă: