这更像是一个新手问题,但我无法得到我在Google上寻找的答案类型。
我正在阅读java.net包中的InetSocketAddress
类,我遇到了名为createUnresolved(String host, int port)
的方法。此方法会创建未解析的套接字。
基本上我们的意思是什么未解决?在编写程序时我经常遇到这个术语,但从来没有完全理解它。任何人都可以解释java中的一般含义,以及上述方法的上下文含义。
感谢。
答案 0 :(得分:0)
我发现了in a sun-blog:
但决定保持原样,但使用createUnresolved()来创建 InetSocketAddress,以便我们知道用于实例化它的内容。如果 用户打开IP地址开始,我们将无法处理它。 (我认为之前无法区分)令牌会有什么 用户在开头使用(IP或名称),如果使用名称, 即使使用addr更改,令牌缓存的密钥也不会改变。所以 委托令牌应继续有效。
基本上,它是一个半生不熟的InetSocketAddress - 所以它不是最后的迭代。这是一个中介步骤..
来自API:
它也可以是一对(主机名+端口号),在这种情况下是一个 将尝试解析主机名。
如果解决方案失败,则说该地址未解决但可以 仍然可以在某些情况下使用,例如通过代理连接
所以我们没有找到主机名或用户友好的“www.abc.com”方法。
但是如果我们通过代理进行连接就没问题,因为代理服务器会处理主机名。
答案 1 :(得分: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;
}