日期:2014-05-20  浏览次数:20899 次

isReachable方法的基础问题
isReachable方法API
public boolean isReachable(int timeout)
  throws IOException

测试是否可以达到该地址。实现尽最大努力试图到达主机,但防火墙和服务器配置可能阻塞请求,使其在某些特定的端口可以访问时处于不可到达状态。如果可以获得权限,则典型实现将使用 ICMP ECHO REQUEST;否则它将试图在目标主机的端口 7 (Echo) 上建立 TCP 连接。 
超时值(以毫秒为单位)指示尝试应该使用的最大时间量。如果在获取应答前操作超时了,则视为主机不可到达。负值将导致抛出 IllegalArgumentException


Java code
InetAddress iad1 = InetAddress.getByName("http://www.baidu.com/");
System.out.println(iad1.isReachable(1000));


为什么上面代码总是返回false啊,我把杀毒软件和windows防火墙全关了也是返回false

------解决方案--------------------
Java code

InetAddress iad1 = InetAddress.getByName("http://www.baidu.com/index.html");
System.out.println(iad1.isReachable(1000));