Hacer ping a una dirección IP en Java | Conjunto 2 (Al crear un subproceso)

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *