Tag: tcp

ServerSocket是否接受任意端口上的返回套接字?

我在java中看到了很多类似于这个问题的答案:“假设你在端口5000上有一个带有serversocket的服务器。客户端A和客户端B将连接到我们的服务器。 客户端A在端口5000上向服务器发送请求。客户端A侧的端口由操作系统选择。 通常,操作系统会选择下一个可用的端口。 此搜索的起点是先前使用的端口号+ 1(因此,例如,如果操作系统最近发生在我们的端口45546上,则操作系统将尝试45547)。 假设没有连接问题,服务器接收客户端A在端口5000上连接的请求。然后,服务器打开其自己的下一个可用端口,并将其发送到客户端。 在这里,客户端A连接到新端口,服务器现在再次使用端口5000。“ 我在stackoverflow上的多个问题中看到了类似的答案,关于如何在accept()的返回套接字中使用不同的端口,而不是ServerSocket正在侦听的端口。 我总是认为TCP由四方信息识别: 客户端IP:客户端端口和服务器IP:服务器端口 – >协议(用于区分TCP和UDP) 那么为什么accept()需要返回绑定到不同端口的套​​接字? 在每个标头中发送的四重信息是否能够区分来自不同机器的多个连接到同一服务器端口,而不需要在服务器计算机上使用不同的端口进行通信?