java - Android - 检查外部服务器是否在线

标签 java android ping

我想在使用在线组件启动任何 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/

相关文章:

C# 异步 Ping : not work from a Threading. 定时器

java - 如何在 Spring Data Jpa 中过滤作为 RequestParams 传递的多个参数?

java - Heroku 应用程序成功启动后崩溃

java - 共享首选项帮助。如何保存 int?

java - 添加迄今为止的天数

java - 卸载应用程序后创建新用户而不是从 Firebase 获取用户 ID

javax.net.ssl.SSLHandshakeException : No enabled protocols; SSLv3 is no longer supported and was filtered from the list

c# - 线程 ARP ping

python - 使用 Flask ping 远程 PC,导致服务器阻塞

android - Android 中的圆形按钮