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下很牛的网络命令