Ping百度,获取延迟

Ping百度,获取延迟


    public void getNetworkDelayPingBaiDu() {
        String delay = new String();
        Process p = null;
        try {

            String ip = "www.baidu.com";
            p = Runtime.getRuntime().exec("/system/bin/ping -c 4 " + ip);
            BufferedReader buf = new BufferedReader(new InputStreamReader(p.getInputStream()));
            String str;
            if ((buf.readLine()) == null) {
                LogManager.get().getLogger(DeviceManager.class).info("打印Ping百度,ping不通");
            }
            while ((str = buf.readLine()) != null) {
                if (str.contains("avg")) {
                    int i = str.indexOf("/", 20);
                    int j = str.indexOf(".", i);
                    System.out.println("延迟:" + str.substring(i + 1, j));
                    delay = str.substring(i + 1, j);
                }
            }
            LogManager.get().getLogger(DeviceManager.class).info("打印Ping百度的延迟为:" + delay);
        } catch (IOException e) {
            e.printStackTrace();
        }

    }

获取到的返回值为:

5 packets transmitted, 5 received, 0% packet loss, time 4004ms
rtt min/avg/max/mdev = 71.971/121.914/254.050/67.212 ms

截取avg的整数值返回

其中单词所代表的意思为:

Mean Deviation 算术平均偏差
发送了五个数据包,接受到五个,没有丢失。发送的总时间4004
rtt是传输的时间延迟Round-Trip Time。最小/平均最大/最大/算术平均差。
主要是看网络状况,也就是延迟时间。linux下很牛的网络命令

猜你喜欢

转载自blog.csdn.net/changhuzichangchang/article/details/80258039