【问题标题】:How many clients can listen at the same time TcpListener?多少个客户端可以同时监听 TcpListener?
【发布时间】:2017-10-13 20:46:35
【问题描述】:

我有一个 List private List<ServerClient> clients; 和一个将开始监听的函数:

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?

【问题讨论】:

  • 你的问题和你的标题要求完全不同的东西。我猜标题不是你想问的。
  • 顺便说一句:显然整台计算机的成本约为 4.000 (Source)。确切的数字取决于您询问的对象,但在此之前您可能会遇到不同的限制(RAM、CPU)。
  • C# 对连接数没有内置限制,只要您的客户端连接到不同的端口,您就可以继续使用,直到达到操作系统强加的限制以防止资源匮乏

标签: c# tcpclient tcplistener


【解决方案1】:

TcpClient 实际上根本没有使用 TcpListenerTcpListener 只是“接听电话,转接电话”的接待员。

一旦通过调用EndAcceptTcpClientAcceptTcpClient 创建了TcpClientTcpClient 将与TcpListener 完全断开连接,它可以继续处理无限数量的请求。

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

【讨论】:

    猜你喜欢
    • 2012-10-28
    • 1970-01-01
    • 1970-01-01
    • 2012-03-27
    • 2011-04-25
    • 2021-08-12
    • 1970-01-01
    • 2015-05-06
    • 2017-04-08
    相关资源
    最近更新 更多