首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在TCP服务器中获取服务器名称

在TCP服务器中获取服务器名称
EN

Stack Overflow用户
提问于 2015-06-14 18:42:38
回答 2查看 1.5K关注 0票数 0

是否可以获取TCP客户端使用的服务器地址?客户端可以使用IP地址或主机/域名访问服务器。

我正在尝试使用以下命令获取域名:

代码语言:javascript
运行
复制
ServerSocket ss = new ServerSocket(port);
Socket s = ss.accept();
System.out.println(s.getLocalAddress().getHostName());
System.out.println(s.getLocalAddress().getCanonicalHostName());

但我得到的总是IP地址!

在超文本传输协议服务器中,我们可以使用httpServletRequest.getServerName()来实现相同的功能。如果HTTP客户端使用IP地址,则返回IP地址;如果HTTP客户端使用域名,则返回域名。所以我很确定这在TCP级别也是可能的。

EN

回答 2

Stack Overflow用户

发布于 2015-06-14 18:56:25

如果您尝试将LocalHost作为服务器,它可能会返回名称,但这可能是DNS问题;无论如何,尝试将您的localhost作为服务器,如果它工作,转到%SystemRoot%\system32\drivers\etc\hosts并定义您的主机名。

check this out.

希望这能有所帮助。

票数 0
EN

Stack Overflow用户

发布于 2015-06-14 21:11:34

如果我没理解错的话,你是想在服务器上找出--当服务器在监听多个IP地址时,哪个IP地址被“客户端”用来连接到服务器。这是你的问题吗?在这种情况下,在accepted套接字上执行getsockname()应该会得到以下结果。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30828417

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档