我有一个 IP 地址为 192.168.0.1 的 java nio 服务器在端口 80 上侦听。我将此服务器配置为绑定到多个域名/主机名,假设 server1、server2、server3 都解析为 192.168.0.1。
现在我希望如果客户端连接到 server1,在服务器端,我可以识别客户端正在连接到 server1 而不是其他名称或直接 IP 地址,这样我就可以做一些特别的事情,如果客户端正在连接到 server2,我可以识别出客户端正在请求 server2,所以我可以做一些特别的事情,等等。
现在的问题是:似乎在服务器端,我无法轻松获得客户端连接到哪个服务器名称的正确信息。
我有以下代码:
ServerSocketChannel ssChannel = (ServerSocketChannel) selKey.channel();
String boundHost = sChannel.socket().getLocalAddress().getHostName();
但它不起作用,即使客户端连接到 server2 或 server3,boundHost 也始终是 server1。