我在桌面端运行了一个套接字监听程序java,我有一个移动客户端,它能够连接到这个套接字服务器而没有任何问题.当客户端尝试访问新连接时,我希望单独为每个客户端建立套接字连接.我从这个链接读取了多个连接检测的参考链接
关于socket如何区分多个连接.提到基于在套接字服务器上检测到的客户端连接的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?或者我需要使用不同的方法吗?
当服务器accept连接时,您会得到一个Socket代表该连接的连接.Socket有一个getInetAddress()方法将返回远程的地址,以及一个getPort()返回远程端口的相应方法.
例如:
Socket newSock = s.accept();
InetAddress addr = s.getInetAddress();
int port = s.getPort();
Run Code Online (Sandbox Code Playgroud)