首页 文章

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

提问于
浏览
4

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

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

2 回答

  • 0

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

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

  • 6

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

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

相关问题