用 Java ping 一个 IP 地址|集合 2(通过创建子进程)

原文:https://www . geesforgeks . org/ping ing-IP-address-Java-set-2 by-creating-sub process/

用 Java ping 一个 IP 地址一文中,我们已经讨论了如何使用T3】Java . net . inetaddress . isrecable()T5】方法 ping 一个 IP 地址。在这篇文章中,我们将讨论如何通过创建一个子进程来执行 ping 命令。

先决条件: ProcessBuilder 类Process 类 下面的 Java 程序创建了一个以命令列表(ping)为参数的方法 commands() 。正如我们所知,ProcessBuilder 类用于创建操作系统进程, ProcessBuilder.start() 启动子进程,该子进程将执行 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);
    }
}

输出:

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): 

读取和理解输出:到目的地的每一行代表一个数据包传输,以毫秒为单位指定的结束时间与测试互联网连接最相关,因为该数字越高,表示延迟或连接问题越高。如果根本没有响应,要么是服务器停机,要么是连接有问题,要么是没有响应 ping 请求,要么是响应速度非常慢。 无互联网连接时的输出:以上程序的输出在我们的系统没有连接互联网时变得非常有趣 输出:

Standard output: 
error (if any): 
ping: cannot resolve www.google.com: Unknown host

理解“丢包”一词:丢包高,几乎可以肯定你有网络问题,因为丢包意味着你和服务器之间正在发送的数据正在丢失。口袋丢失的原因可能是互联网连接不良、wi-fi 问题、一般网络问题、连接不良、连接困难、连接受到干扰、连接中断或许多其他潜在的网络问题。

相关文章: 在 Java 中 ping 一个 IP 地址 本文由 Abhishek 维尔马供稿。如果你喜欢 GeeksforGeeks 并想投稿,你也可以使用write.geeksforgeeks.org写一篇文章或者把你的文章邮寄到 review-team@geeksforgeeks.org。看到你的文章出现在极客博客主页上,帮助其他极客。 如果发现有不正确的地方,或者想分享更多关于上述话题的信息,请写评论。