繁体   English   中英

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

[英]Java client socket returned by ServerSocket.accept()

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

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

两个ServerSocket无法侦听相同的IP地址和端口。 可能有两个ServerSocket侦听不同的IP和相同的端口。

对于本地和远程,两个套接字不能具有相同的IP和端口。 如果远程IP和端口不同,则许多套接字的本地端口可以相同。

您不能使用多个套接字来侦听给定的IP:端口组合,但是可以存在多个接受到同一组合的连接。

通过本地IP地址和端口以及远程IP地址和端口的组合来标识连接。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM