繁体   English   中英

Java 套接字连接getHostName

[英]Java Socket connection getHostName

我在 java.net.ServerSocket 上进行测试。 我想要的是以下内容。 当连接到aaa.com,你得到aaa.com,得到bbb.com时连接到bbb.Z4D5Z6D9A2D102C

我的 etc/hosts 文件配置如下。

127.0.0.1 aaa.com
127.0.0.1 bbb.com

我使用了以下 java 源。

ServerSocket server = new ServerSocket(port);
Socket request = server.accept();
request.getInetAddress().getHostName();

并且当连接到 aaa.com 时,返回 aaa.com。 连接到 bbb.com 时,返回 aaa.com。

连接到 bbb.com 时如何获得 bbb.com?

这段代码没有连接到任何东西。 它正在接受来自……某物的连接

所以...我假设您有一些客户端代码(未显示)分别使用主机名“aaa.com”和“bbb.com”连接到port 并且您希望服务器端知道客户端使用的主机名。

这不可能。

客户端将主机名解析为 IP 地址,然后使用 IP 地址(并且IP 地址)进行连接。 由于两种情况下IP地址相同,所以服务器端无法区分两种情况。


因此,如果服务器的应用程序级别需要知道客户端用于建立连接的主机名,那么应用程序协议必须将此信息从客户端传递给服务器。 (这就是 HTTP、FTP 等协议的作用。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM