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

Ste*_*lla 1 java sockets

我在桌面端运行了一个套接字监听程序java,我有一个移动客户端,它能够连接到这个套接字服务器而没有任何问题.当客户端尝试访问新连接时,我希望单独为每个客户端建立套接字连接.我从这个链接读取了多个连接检测的参考链接

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

ServerSocket server = new ServerSocket(8080);
System.out.println("server.getInetAddress();: " + server.getInetAddress());
Run Code Online (Sandbox Code Playgroud)

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

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

Jim*_*son 7

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

例如:

Socket newSock = s.accept();
InetAddress addr = s.getInetAddress();
int         port = s.getPort();
Run Code Online (Sandbox Code Playgroud)