6

这更像是一个新手问题,但我无法在 Google 上找到我正在寻找的答案类型。

我正在阅读InetSocketAddressjava.net 包中的类,我遇到了这个名为createUnresolved(String host, int port). 此方法创建一个未解析的Socket。

基本上我们所说的未解决是什么意思?我在编译程序时经常遇到这个术语,但从未完全理解它。谁能解释一下java中的一般含义,以及该方法的上下文含义。

谢谢。

4

2 回答 2

1

在一个太阳博客中找到了这个:

但决定保持原样,但使用 createUnresolved() 创建 InetSocketAddress,以便我们知道用于实例化它的内容。如果用户一开始就输入了 IP 地址,我们将不会处理它。(我认为以前无法​​区分)令牌将具有用户在开始时使用的任何内容(IP 或名称),并且在使用名称的情况下,即使地址发生更改,令牌缓存的密钥也不会更改。所以委托令牌应该继续工作。

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

并从 API:

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

如果解析失败,则称该地址未解析,但仍可在某些情况下使用,例如通过代理连接

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

但是,如果我们通过代理进行连接,那没关系,因为代理服务器会处理主机名。

于 2013-02-02T20:20:50.207 回答
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;
}
于 2017-01-03T17:43:20.840 回答