En el artículo Hacer ping a una dirección IP en Java , hemos discutido cómo hacer ping a una dirección IP usando el método java.net.InetAddress.isReachable() . En esta publicación, discutiremos cómo ejecutar el comando ping creando un subproceso.
Requisito previo: clase ProcessBuilder, clase de proceso
A continuación, el programa Java crea un método de comandos() que toma la lista de comandos (ping) como parámetro. Como sabemos, la clase ProcessBuilder se utiliza para crear procesos del sistema operativo y ProcessBuilder.start() inicia el subproceso que ejecutará el comando ping.
Java
// Java program for ping using sub-process import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.ArrayList; public class PingWebsite { // method for finding the ping statics of website static void commands(ArrayList<String> commandList) throws Exception { // creating the sub process, execute system command ProcessBuilder build = new ProcessBuilder(commandList); Process process = build.start(); // to read the output BufferedReader input = new BufferedReader(new InputStreamReader (process.getInputStream())); BufferedReader Error = new BufferedReader(new InputStreamReader (process.getErrorStream())); String s = null; System.out.println("Standard output: "); while((s = input.readLine()) != null) { System.out.println(s); } System.out.println("error (if any): "); while((s = Error.readLine()) != null) { System.out.println(s); } } // Driver method public static void main(String args[]) throws Exception { // creating list for commands ArrayList<String> commandList = new ArrayList<String>(); commandList.add("ping"); // can be replaced by IP commandList.add("www.google.com"); PingWebsite.commands(commandList); } }
Producción:
Standard output: PING www.google.com (216.58.220.164): 56 data bytes 64 bytes from 216.58.220.164: icmp_seq=0 ttl=53 time=98.803 ms 64 bytes from 216.58.220.164: icmp_seq=1 ttl=53 time=87.856 ms 64 bytes from 216.58.220.164: icmp_seq=2 ttl=53 time=110.600 ms 64 bytes from 216.58.220.164: icmp_seq=3 ttl=53 time=92.897 ms 64 bytes from 216.58.220.164: icmp_seq=4 ttl=53 time=90.142 ms --- www.google.com ping statistics --- 5 packets transmitted, 5 packets received, 0.0% packet loss round-trip min/avg/max/stddev = 87.856/96.060/110.600/8.140 ms error (if any):
Lectura y comprensión de la salida: cada línea hacia el destino representa una transmisión de paquete, el tiempo especificado en milisegundos al final es más relevante para probar una conexión a Internet, ya que cuanto más alto sea el número, más alto será el retraso o un problema de conexión. Si no hay ninguna respuesta, el servidor está inactivo, hay un problema de conexión, no responde a las requests de ping o responde muy lentamente.
Salida cuando no hay conexión a Internet: La salida del programa anterior se vuelve muy interesante cuando nuestro sistema no está conectado a Internet
Salida:
Standard output: error (if any): ping: cannot resolve www.google.com: Unknown host
Comprender el término «pérdida de paquetes»: la pérdida de paquetes es alta, es casi seguro que tenga problemas de red, porque la pérdida de paquetes significa que los datos que se envían entre usted y el servidor se están perdiendo. El motivo de la pérdida de bolsillo puede ser una conexión a Internet deficiente, problemas de wi-fi, problemas generales de red, una mala conexión, una conexión con problemas, una conexión interferida, interrupciones de conexión o muchos otros posibles problemas de red.
Artículo relacionado: Hacer ping a una dirección IP en Java
Este artículo es una contribución de Abhishek Verma . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.orgo envíe su artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA