ServerSocket.accept()返回的Java客户端套接字

Pat*_*tay 4 java sockets port networking tcp

这更像是一个普通的套接字问题.在Java中,如果我将ServerSocket绑定到特定端口(例如4444),我就知道它正在侦听连接请求.accept()方法阻塞,直到收到连接请求,并返回一个新的Socket以与客户端通信.返回的Socket的远程端点是客户端的IP地址和端口.

但是,我感到困惑的是,返回的Socket的本地端口与正在侦听请求的ServerSocket的端口号相同(在本例中为4444).我以为两个套接字不能绑定到同一个端口?返回的Socket不会是服务器上的不同端口吗?

Pet*_*rey 6

两个ServerSockets无法侦听相同的IP地址和端口.可以让两个ServerSockets侦听不同的IP和相同的端口.

两个插槽不能具有本地AND远程的相同IP和端口.对于许多套接字,本地端口可以是相同的,提供的远程IP和端口是不同的.