2017-10-13 175 views
0

我有一个列表private List<ServerClient> clients;并开始监听功能:有多少个客户端可以同时收听TcpListener?

private void StartListening() 
{ 
    server.BeginAcceptTcpClient (AcceptTcpClient,server); 
} 

private void AcceptTcpClient(IAsyncResult ar) 
{ 
    TcpListener listener = (TcpListener)ar.AsyncState; 

    clients.Add (new ServerClient (listener.EndAcceptTcpClient (ar))); 
    StartListening(); 
} 

因此,这个简单的网络监听器......有多少客户端可以在同一时间的TcpListener听?

+0

你的问题和你的标题要求完全不同的东西。我想标题是**而不是**你想问什么。 –

+0

顺便说一句:显然它是~4000整个计算机([来源](http://smallvoid.com/article/winnt-tcpip-max-limit.html))。确切的数字取决于你问谁,但在此之前你可能会遇到不同的限制(RAM,CPU)。 –

+0

只要您的客户端连接到不同的端口,您可以继续使用,直到达到操作系统强制限制以防止资源匮乏,则连接数没有内置C#限制 – mnistic

回答

0

TcpClient实际上并不使用TcpListener在所有。 TcpListener只是“接待员接听电话,转接电话”。

一旦TcpClient通过调用EndAcceptTcpClient,或AcceptTcpClient创建时,TcpClientTcpListener完全断开,它可以继续服务请求的数量不受限制。

只要TcpClient资源被正确释放回操作系统(通过调用Dispose),单个TcpListener就可以为每个传入连接创建一个TcpClient

相关问题