Tcp Listener套接字仅用于建立连接或处理所有的数据?

时间:2016-01-25 17:47:06

标签: c# sockets networking tcp

监听Tcp套接字是否会为每个已建立的连接创建一个新套接字来处理来自特定客户端的数据?这个回答:https://stackoverflow.com/a/26374740/5342935建议如下:

  

服务器的原始套接字从不用于通过连接进行实际通信。它只是用于创建连接的套接字。

但是:我构建了一个基本的Tcp / Ip应用程序并通过wireshark查看了数据包,并发现从客户端发送到服务器的数据被发送到同一个ip:port(=相同的套接字,根据对此:https://stackoverflow.com/a/152863/5342935(建议Socket只是连接的一个端点。))作为连接请求。由于对上面第一个答案链接的支持,我首先认为这可能是完全错误的,但多人确认它是对的,这让我感到困惑。

1 个答案:

答案 0 :(得分:1)

你的观察是正确的,但结论是错误的: - )

侦听套接字实际上用于建立连接。然后,数据传输连接使用同一对客户端和服务器端口,但操作系统将数据分发到特定于其所属客户端的不同套接字通道。