【发布时间】:2015-12-17 07:29:22
【问题描述】:
我正在尝试使用 Android 上的 /system/bin/ping 命令来 ping 我网络上的设备。出于某种原因,它会为我尝试的每个 ping 返回退出代码 2。 我已经尝试过:www.google.com、192.168.2.1(路由器本地 ip),以及当前子网上设备的所有可能 ip……但它总是返回 2。这是我的代码。
onCreate
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
try {
String subnet = "192.168.2";
for (int i = 0; i <= 255; i++) {
String node = subnet + "." + i;
System.out.println(pingHost(node));
}
} catch (InterruptedException | IOException e) {
e.printStackTrace();
}
}
pingHost()
public static int pingHost(String host) throws IOException, InterruptedException {
String cmd = "/system/bin/ping -c 1 -W 1000 " + host;
Process proc = Runtime.getRuntime().exec(cmd);
proc.waitFor();
return proc.exitValue();
}
我尝试过超时和不超时...仍然唯一打印的退出代码是 2。
有什么想法吗?
【问题讨论】:
-
我一直在用我的三星 Galaxy S2 进行测试...如果这意味着什么。
-
你为什么不打印错误流和输出流并检查它是否给出错误的可读消息......
-
我会在我回到我的电脑后尝试一下。谢谢:)
-
您还应该注意“-W 1000”。你真的是说 1000 超时?如果没有留下它“-W 1”
标签: java android networking ping exit-code