与服务器在同一台计算机上的多个TcpClients
本文关键字:计算机 TcpClients 一台 服务器 | 更新日期: 2023-09-27 18:20:01
如果一台机器正在运行一个在某个端口(比如9999)上侦听的服务器应用程序,并且在同一台机器上,几个客户端应用程序打开了到同一服务器应用程序的TcpClient(localhost,9999)连接,会发生什么?这会引起某种碰撞吗?
在C#中,TcpListener
正在等待来自具有AcceptSocket
或AcceptTcpClient
的客户端的传入连接。在成功连接时,您会返回一个Socket
对象,该对象可用于与由客户端IP标识的特定客户端进行通信。如果与客户端的连接是在AcceptSocket
之外的另一个线程中处理的,则服务器应用程序可以同时与多个客户端进行通信。例如,服务器循环仅调用CCD_ 6并且直接将CCD_。通常,对于传入连接,您知道客户端IP地址(和端口),并基于此可以将连接/数据多路传输到相应的套接字。这里有一个很好的完整答案,但不是C#特有的TCP:两个不同的套接字共享一个端口?
在客户端,为传出连接选择一个随机端口。这是由套接字/网络系统完成的
在互联网模式中,端口号在0到65535之间,由客户端主机上运行的传输层软件随机选择。这些端口被称为临时端口(范围从1024到49151)。
应用C#.NET套接字编程