public boolean isReachable(String ipAddress, int port, int timeout)
{
Socket socket = new Socket();
Exception exception = null;
try {
socket.connect(new InetSocketAddress(ipAddress, port), timeout);
}
catch (IOException e) { exception = e; }
finally {
try { socket.close(); } catch (Exception e) {e.printStackTrace(); }
}
return exception == null;
}
這段代碼當我連接到互聯網的工作。但它也適用於我從ISP端斷開(例如,當adsl服務日期已過期或流量已完成時)。 請告訴我問題在哪裏?如何檢查特定端口上的IP地址的連通性?
你可以試試這個代碼塊嗎?嘗試socket.connect(新的InetSocketAddress(ipAddress,端口),超時); \t返回true; } catch(Exception e){return false; } –