与服务器在同一台计算机上的多个TcpClients

本文关键字:计算机 TcpClients 一台 服务器 | 更新日期: 2023-09-27 18:20:01

如果一台机器正在运行一个在某个端口(比如9999)上侦听的服务器应用程序,并且在同一台机器上,几个客户端应用程序打开了到同一服务器应用程序的TcpClient(localhost,9999)连接,会发生什么?这会引起某种碰撞吗?

与服务器在同一台计算机上的多个TcpClients

在C#中,TcpListener正在等待来自具有AcceptSocketAcceptTcpClient的客户端的传入连接。在成功连接时,您会返回一个Socket对象,该对象可用于与由客户端IP标识的特定客户端进行通信。如果与客户端的连接是在AcceptSocket之外的另一个线程中处理的,则服务器应用程序可以同时与多个客户端进行通信。例如,服务器循环仅调用CCD_ 6并且直接将CCD_。通常,对于传入连接,您知道客户端IP地址(和端口),并基于此可以将连接/数据多路传输到相应的套接字。这里有一个很好的完整答案,但不是C#特有的TCP:两个不同的套接字共享一个端口?

在客户端,为传出连接选择一个随机端口。这是由套接字/网络系统完成的

在互联网模式中,端口号在0到65535之间,由客户端主机上运行的传输层软件随机选择。这些端口被称为临时端口(范围从1024到49151)。

应用C#.NET套接字编程