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