天天看點

使用isReachable方法探測主機是否可以連通

 在J2SE5.0中的InetAddress類中增加了一個isReachable方法。可以使用這個方法來探測主機是否可以連通。這個方法有兩個重載形式,它們的定義如下:

public boolean isReachable(int timeout) throws IOException

public boolean isReachable(NetworkInterface netif, int ttl, int timeout) throws IOException

    第一個重載形式有一個timeout參數,可以通過這個參數設定連接配接逾時(機關:毫秒)。第二個重載形式多了兩個參數:netif和ttl.通過netif參數可以使用一個NetworkInterface對象來确定用戶端使用哪個網絡接口來測試主機的連通性。ttl是指測試連通性過程中的最大連接配接躍點數(從客戶機到達遠端主機所經過的最大路由數就是最大連接配接躍點數,一個路由被稱為一個躍點,在Windows網絡連接配接中的“進階TCP/IP設定”對話框最下面可以設定接口躍點數),如果達到最大連接配接躍點數,還沒找到遠端主機,isReachable方法就認為客戶機和遠端主機之間是不可連通的。

    isReachable方法是通過連接配接主機的echo端口來确定用戶端和服務端是否可連通。但在Internet上使用這個方法可能會因為放火牆等因素而無法連通遠端主機(實際上,遠端主機是可以連通的),是以,isReachable在Internet上并不可靠。但我們可以将isReachable方法應用于區域網路中。

繼續閱讀