本文為原創(chuàng),如需轉(zhuǎn)載,請注明作者和出處,謝謝!
上一篇:Java網(wǎng)絡(luò)編程從入門到精通(11):使用NetworkInterface類獲得網(wǎng)絡(luò)接口信息
在J2SE5.0中的InetAddress類中增加了一個isReachable方法。可以使用這個方法來探測主機是否可以連通。這個方法有兩個重載形式,它們的定義如下:
public boolean isReachable(int timeout) throws IOException
public boolean isReachable(NetworkInterface netif, int ttl, int timeout) throws IOException
第一個重載形式有一個timeout參數(shù),可以通過這個參數(shù)設(shè)置連接超時(單位:毫秒)。第二個重載形式多了兩個參數(shù):netif和ttl。通過netif參數(shù)可以使用一個NetworkInterface對象來確定客戶端使用哪個網(wǎng)絡(luò)接口來測試主機的連通性。ttl是指測試連通性過程中的最大連接躍點數(shù)(從客戶機到達遠程主機所經(jīng)過的最大路由數(shù)就是最大連接躍點數(shù),一個路由被稱為一個躍點,在Windows網(wǎng)絡(luò)連接中的“高級TCP/IP設(shè)置”對話框最下面可以設(shè)置接口躍點數(shù)),如果達到最大連接躍點數(shù),還沒找到遠程主機,isReachable方法就認為客戶機和遠程主機之間是不可連通的。
isReachable方法是通過連接主機的echo端口來確定客戶端和服務(wù)端是否可連通。但在Internet上使用這個方法可能會因為放火墻等因素而無法連通遠程主機(實際上,遠程主機是可以連通的),因此,isReachable在Internet上并不可靠。但我們可以將isReachable方法應(yīng)用于局域網(wǎng)中。
下一篇:Java網(wǎng)絡(luò)編程從入門到精通(13):使用Socket類接收和發(fā)送數(shù)據(jù)
新浪微博:http://t.sina.com.cn/androidguy 昵稱:李寧_Lining