检查服务器端口是否从Android打开

时间:2011-11-12 15:09:47

标签: android port ping

我正在尝试从Android设备连接到我的远程服务器。如何检查服务器上的特定端口是否已打开?例如。如何检查我的服务器11.11.11.11上是否打开了端口80?

目前,我正在使用InetAddress ping主机是否可以访问,但这并不能告诉我端口80是否已打开。

当前代码

boolean isAvailable = false;
try {
    isAvailable = InetAddress.getByName("11.11.11.11").isReachable(2000);
    if (isAvailable == true) {
       //host is reachable
       doSomething();
    }
} catch (Exception e) {

}

1 个答案:

答案 0 :(得分:8)

创建套接字,检查是否可以连接具有特定端口的给定 ip

public static boolean isPortOpen(final String ip, final int port, final int timeout) {

    try {
        Socket socket = new Socket();
        socket.connect(new InetSocketAddress(ip, port), timeout);
        socket.close();
        return true;
    } 

    catch(ConnectException ce){
        ce.printStackTrace();
        return false;
    }

    catch (Exception ex) {
        ex.printStackTrace();
        return false;
    }
}