在测试通过getByName方法创建一个InetAddress对象时,发现如果创建本机的InetAddress对象可以实现,而且测试www.sina.com.cn也可以正确返回。但当我在本机创建局域网中的其它主机的InetAddress对象时,确出现了问题:当getByName(String host)中host参数为主机名时,程序报异常,但如果host使用ip地址时,确可以正常返回。所以不知道是怎么回事?因为连sina的InetAddress对象都可以创建,怎么局域网中的却不能创建呢?而且更奇怪的是通过ip地址也可以创建(还不知道是否创建的就是我指定ip的对象)、而使用主机名却不行。还请各位大虾解释一下原因。

解决方案 »

  1.   

    如果你的局域网是在一个域里,是因为局域网里缺少一个域控制器。
    另外,如果不是在一个域里,看看是不是在同一个工作组里。如果你能  ping hostname 通过的话,那上面的代码就可以通过了
      

  2.   

    如果你的操作系统是Linux ,你可以看一下/etc/hosts里有没有hostname 和ip地址对应关系。
    windows我就不清楚了
      

  3.   

    我通过ping ip可以通过,ping 主机名好像不通,报“Ping request could not find host”,请问这是什么原因呀?
      

  4.   

    楼主的局域里DNS解析不起作用.
      

  5.   

    看看是不是没启用DNS服务
    一个服务端一个客户端的,在网关上都要开开,其它机器把客户端那个开开
      

  6.   

    局域网访问要DNS?
    有没有搞错!同一个网段的不需要dns