我想在使用在线组件启动任何 Activity 之前检查我的服务器是否在线。
我试过使用 ping
runtime.exec("ping -c 1 google.com");
proc.waitFor();
int exit = proc.exitValue();
但这将始终给出退出代码 1 或 2,永远不会给出 0,即使我知道服务器在线时也是如此。
我也试过
Online=InetAddress.getByName("www.google.com").isReachable(10000);
但显然这个功能对于外部服务器来说非常不稳定,因此它也不起作用。
检查服务器是否在线这样的基本功能应该非常简单吧?有没有人有任何我还没有尝试过的想法?
最佳答案
尝试连接到服务器,使用您将“真正”使用的任何协议(protocol)。仅仅因为服务器响应 ping
并不意味着该服务器正在为您需要的目的运行。因此,例如,如果您要发出 Web 服务请求,请执行一些简单的 HTTP 操作。
关于java - Android - 检查外部服务器是否在线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6402733/