Java网络编程从入门到精通(12):使用isReachable方法探测主机是否可以连通
2009-05-08 09:00
453 查看
在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方法应用于局域网中。
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方法应用于局域网中。
相关文章推荐
- Java网络编程从入门到精通(12):使用isReachable方法探测主机是否可以连通
- Java网络编程从入门到精通(12):使用isReachable方法探测主机是否可以连通
- Java网络编程从入门到精通(12):使用isReachable方法探测主机是否可以连通
- 使用isReachable方法探测主机是否可以连通
- 使用isReachable方法探测主机是否可以连通
- Java网络编程从入门到精通(6):使用getCanonicalHostName方法获得主机名
- Java网络编程从入门到精通(6):使用getCanonicalHostName方法获得主机名
- Java网络编程从入门到精通(6):使用getCanonicalHostName方法获得主机名
- layui 表单验证旧密码是否输入正确(验证用户名是否被使用,也可以用这种方法)
- 虚拟主机中独立日志(log)空间用户是否可以直接使用?
- layui 表单验证旧密码是否输入正确(验证用户名是否被使用,也可以用这种方法)
- 本人亲测,可以使用,万网虚拟主机绑定多个子域名方法(转载)
- C#判断字符串中是否包含一个子字符串是可以直接使用Contains()方法
- 用ASP探测远程主机是否开机的三種方法
- 2014-03-31工作日志:判断文件是否存在可以使用GetFileAttributes 方法。
- Java的接口中是否可以使用静态方法
- 在进行C#编程时候,有的时候我们需要判断一个字符串是否是数字字符串,我们可以通过以下两种方法来实现。 【方法一】:使用 try{} catch{} 语句。 我们可以在try语句块中试图
- wex5中使用password控件,密码可以隐藏,判断输入框是否为空时,无法通过password的.val()方法获取数据
- vbox使用 ssh & samba 访问真实主机网络配置方法
- 当某个类的prototype对象 中有数组时,通过该类的对象 并使用push方法就可以改变原型对象中数组的值