如何在Android中检查服务器可用性?

如何在Android中检查服务器可用性?,android,Android,InetAddress address=InetAddress.getByAddress(新字节[]{(字节)192,(字节)168,(字节)254,(字节)10);success=address.isReachable(3000); 这返回false,即使我合理地确定它是一个可访问的地址 我发现如果我把它改成127,0,0,1,它会返回成功 我的下一次尝试是相同的代码,但我使用了从www.google.com(截至本文撰写时为72.167.164.64)的ping中获得的地址。没有成功。检查服

InetAddress address=InetAddress.getByAddress(新字节[]{(字节)192,(字节)168,(字节)254,(字节)10);success=address.isReachable(3000);

这返回false,即使我合理地确定它是一个可访问的地址

我发现如果我把它改成127,0,0,1,它会返回成功


我的下一次尝试是相同的代码,但我使用了从www.google.com(截至本文撰写时为72.167.164.64)的ping中获得的地址。没有成功。

检查服务器是否可用

InetAddress.getByName(host).isReachable(timeOut)

您可以在服务器上创建一个servlet/网页或任何您认为合适的内容,根据android的服务器状态返回ok或error。您必须调用该url并检查返回的值,还必须在try/catch上查看特定的异常,例如与超时相关的异常,如果您的http请求返回,还必须检查http状态200就可以了,您可以从该url获取服务器状态

检查

readStream是一种将inputstream转换为字符串的方法

public static String readStream (InputStream in) throws IOException {
    StringBuffer out = new StringBuffer();
    byte[] b = new byte[4096];
    for (int n; (n = in.read(b)) != -1;) {
        out.append(new String(b, 0, n));
    }
    return out.toString();
}

这是一个公正的想法……有很多方法可以检查服务器的可用性

@jong你知道服务器吗?任何像我的服务器地址192.168.11.231这样的服务器。我的数据都来自这个服务器地址。你能用例子解释吗?PLZ这也可以用xDDD,因为它根据主机名确定主机的IP地址。主机名可以是她可能是一个机器名,比如“java.sun.com”,或者是它的IP地址的文本表示形式。你确定@yeradis InetAddress.getByName(host.isReachable(timeOut)在android上工作吗?当然可以,只要在这里检查一下,如果地址查找失败,它就会抛出UnknownHostException。好的thnx,但你有InetAddress.getByName(host.isReachable)的例子吗(超时)为了理解。。
public static String readStream (InputStream in) throws IOException {
    StringBuffer out = new StringBuffer();
    byte[] b = new byte[4096];
    for (int n; (n = in.read(b)) != -1;) {
        out.append(new String(b, 0, n));
    }
    return out.toString();
}