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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© --☆伟☆-- 黑马帝   /  2012-6-3 20:50  /  1457 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

        public static void main(String[] args) throws Exception
        {
                InetAddress i=InetAddress.getByName("WILL-PC");
                InetAddress p=InetAddress.getByName("192.168.0.16");
                System.out.println(i.toString());
                System.out.println(p.toString());
        }
运行结果:
WILL-PC/192.168.0.16
/192.168.0.16
这里面的InetAddress p=InetAddress.getByName("192.168.0.16");其中的"192.168.0.16"不是IP地址么,为什么方法是getByName
还有定义的InetAddress()对象i和P有什么不同(两者调用toString方法后不同)

1 个回复

倒序浏览
本帖最后由 张亭 于 2012-6-3 21:04 编辑

楼主可以好好看下API文档:
public static InetAddress getByName(String host)
在给定主机名的情况下确定主机的 IP 地址。
主机名可以是机器名(如 "java.sun.com"),也可以是其 IP 地址的文本表示形式。如果提供字面值 IP 地址,则仅检查地址格式的有效性。
对于以字面值 IPv6 地址指定的 host,在 RFC 2732 中定义的形式或在 RFC 2373 中定义的字面值 IPv6 地址格式都可以接受。IPv6 范围地址也受支持。

i是通过主机名的方式得出的,hostname="WILL-PC"
p是通过ip地址得出的,hostname=null
另外,InetAddress 类复写了toString方法:
    public String toString() {
        return ((hostName != null) ? hostName : "") + "/" + getHostAddress();
    }
就是说,有hostName 的话格式为:hostName /ip地址
没有的话: /ip地址

点评

受教了  发表于 2012-6-4 23:58

评分

参与人数 1技术分 +1 收起 理由
赵志勇 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马