gpt4 book ai didi

java - 服务器有没有办法知道连接客户端的主机名?

转载 作者:行者123 更新时间:2023-12-01 15:47:15 26 4
gpt4 key购买 nike

客户端被赋予服务器的主机名,以便客户端可以连接到具有给定主机名的服务器。

//client side
host = new InetSocketAddress ( args[0], 50000); // args[0] = server's address
sockfd = new Socket(host.getHostName(),host.getPort());



//server side
sockfd = new ServerSocket(50000);
Socket clientfd= sockfd.accept ();

当客户端像上面一样连接到服务器A时,服务器A有办法知道客户端的主机名吗?因为服务器 A 必须告诉另一个服务器 B 向该客户端提供一些消息。

如果没有,已连接的服务器 A 应如何通知服务器 B 连接到客户端?

客户端还有ServerSocket可以接收来自服务器B的连接

最佳答案

服务器 A 可以使用 getInetAddress 和 getHostName 来确定客户端的主机名。不过,不需要主机名,因为您还可以从 Socket 获取客户端 IP:

Socket clientfd = sockfd.accept();
InetAddress clientIA = clientfd.getInetAddress();
String clientHN = clientIA.getHostName();
byte[] clientIP = clientIA.getAddress();

但是,格雷格提到的网络问题仍然有效;让服务器连接回任何给定的客户端可能很困难或不可能。

关于java - 服务器有没有办法知道连接客户端的主机名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6886701/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com