2013-02-02 44 views
6

这是一个新手问题,但我无法获得我在Google上寻找的答案类型。未解决的套接字地址

我正在阅读java.net包中的InetSocketAddress类,并且遇到名为createUnresolved(String host, int port)的此方法。此方法创建一个未解决的套接字。

基本上我们未解决的含义是什么?我在编译程序时经常遇到错误,但从来没有完全理解它。任何人都可以请解释在java中的一般意义,并说明与上下文的方法。

谢谢。

+0

在Javadoc中对此进行了描述,您对此也有误引。 – EJP

+1

是的,我也写道,我没有完全理解它。 – Rajat

回答

0

我发现这个in a sun-blog

但决定保持原样,但使用createUnresolved()来创建一个 的InetSocketAddress,让大家知道什么来实例化。如果 用户打了一个IP地址开始,我们不会处理它。 (我认为它之前没什么区别)令牌将有任何 用户在开始时使用(IP或名称),如果使用名称, 即使addr更改也不会更改令牌缓存的密钥。所以 委托令牌应该继续工作。

基本上,它是一个半成品的InetSocketAddress - 所以它不是最终的迭代。这是一个中间步骤..

,并从API:

它也可以是一个对(主机名+端口号),在这种情况下, 将尝试解析主机名。

如果解析失败,则地址被认为是未解决的,但可以 仍然在某些情况下,可以使用类似通过代理

连接,所以我们没有找到主机名,或用户友好“ www.abc.com“方法。

但是,如果我们通过代理进行连接,则代理服务器处理主机名是可以的。

0

我有同样的异常:的java.net.UnknownHostException:主机是没有解决:https://www.google.com

问题是,因为我加入了协议https://开头,这个问题后,我取出HTTPS解决://

try { 
    Socket socket = new Socket(); 
    socket.connect(new InetSocketAddress("www.google.com", 443), 100); 
    socket.close(); 
    return true; 
} catch (IOException e) { 
    e.printStackTrace(); 
    return false; 
} 
相关问题