A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张晋瑜 中级黑马   /  2013-3-13 13:08  /  7446 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 黄玉昆 于 2013-3-16 19:49 编辑

代码如下:
  1.         public static void main(String[] args) {
  2.                 try {

  3.                         InetAddress address=InetAddress.getByName("23.34.145.55");        // oracle的地址
  4.                         System.out.println(address.isReachable(1000));               
  5.                 } catch (UnknownHostException e) {
  6.                         // TODO Auto-generated catch block
  7.                         System.out.println("sorry, cann't find this host! ");
  8.                 } catch (IOException e){
  9.                         e.printStackTrace();
  10.                 }
  11.                
  12.         }
复制代码
问题:
地址是oracle网站的地址,isReachable方法是测试主机是否可以联通,这个地址明明是可以联通的,可是为什么返回的确是false呢?
然后我用本局域网内的别人电脑ip测了下,比如192.168.1.105,返回的是true。这是为什么?

点评

如果问题未解决,请继续追问回复者,如果问题已经解决,请将分类改为“已解决”,谢谢  发表于 2013-3-16 13:54

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1 赞一个!

查看全部评分

2 个回复

倒序浏览
这个你可以看下:
public boolean isReachable(int timeout)
                    throws IOException
测试是否可以达到该地址。实现尽最大努力试图到达主机,但防火墙和服务器配置可能阻塞请求,使其在某些特定的端口可以访问时处于不可到达状态。如果可以获得权限,则典型实现将使用 ICMP ECHO REQUEST;否则它将试图在目标主机的端口 7 (Echo) 上建立 TCP 连接
防火墙和服务器设置的问题。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
OK,会注意的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马