gpt4 book ai didi

java - 如何在服务器套接字端检索客户端的 IP 和端口?

转载 作者:行者123 更新时间:2023-11-29 06:35:32 24 4
gpt4 key购买 nike

我有一个基于桌面端运行的套接字监听器 java,我有一个移动客户端,它能够毫无问题地连接到这个套接字服务器。当客户端尝试访问新连接时,我想为每个客户端分别建立套接字连接。我从这个链接中读到,Reference link for multiple connection detection

关于套接字如何区分多个连接。提到基于在套接字服务器上检测到的客户端连接的 IP 和端口,并且连接对于每个连接都是唯一的。每个连接的客户端端口都会不同。我读到,我们可以调用 getpeername 在套接字服务器端获取客户端连接的 IP 和 PORT。但是,我在 Java 中看不到任何此类 API,然后找到了以下 API。

ServerSocket server = new ServerSocket(8080);
System.out.println("server.getInetAddress();: " + server.getInetAddress());

但是,它总是返回 server.getInetAddress():- 0.0.0.0/0.0.0.0当移动客户端(模拟器)调用此套接字时。

有人可以告诉我,为什么我不能在套接字端使用上述 InetAddress API 获取客户端的 IP 和端口?或者我需要使用不同的方法吗?

最佳答案

当服务器接受一个连接时,您会得到一个代表该连接的SocketSocket 有一个 getInetAddress()将返回 Remote 地址的方法,以及相应的 getPort()返回远程端口的方法。

例如:

Socket newSock = s.accept();
InetAddress addr = s.getInetAddress();
int port = s.getPort();

关于java - 如何在服务器套接字端检索客户端的 IP 和端口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21655187/

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