首页 > 解决方案 > 如何正确填充 InetSocketAddress

问题描述

我正在尝试填充 Host 标头。我已经为我的示例插入了虚拟数据,但我想知道我是否正确填充了它。当检查地址的值时,它看起来不像我预期的那样。我希望 [domain]:[port] 但我看到 [domain]/[ip address]:[port]。这是正常的吗?

这是我正在使用的线路

InetSocketAddress address = new InetSocketAddress("sample.com", 8080);

这是之后的变量值:

address = {InetSocketAddress} sample.com/173.230.129.147:8080

谢谢

标签: javaspring-websocket

解决方案


是的,这很正常。InetSocketAddress尝试自动将主机名解析为 IP 地址。

API 规范

该类实现了一个 IP 套接字地址(IP 地址 + 端口号),它也可以是一对(主机名 + 端口号),在这种情况下,将尝试解析主机名

如果要创建 InetSocketAddress 而不将主机名解析为 IP 地址,可以使用createUnresolved工厂方法。

jshell> InetSocketAddress.createUnresolved("example.com", 8080);
$20 ==> example.com:8080

推荐阅读