【问题标题】:Proper Usage of TcpListener in C#在 C# 中正确使用 TcpListener
【发布时间】:2014-05-10 13:49:54
【问题描述】:

我正在使用 C# 中的 System.Net 命名空间来试验客户端-服务器应用程序。我目前正在使用以下 TcpListener 代码来监听传入的连接:

TcpListener listener = new TcpListener(IPAddress.Any, 62126);
List<Connection> ClientConnections = new List<Connection>();
while (true)
{
    listener.Start();
    while (true)
    {
        if (listener.Pending())
        {
            ClientConnections.Add(new Connection(listener.AcceptTcpClient()));
            break;
        }
    }
}

(其中 Connection 是一个类,它通过public Connection(TcpClient client) { ... } 获取接受的 TcpClient 并在单独的线程上维护连接。)

我是否需要在每次接受传入连接时调用listener.Start() 还是没有必要?

【问题讨论】:

标签: c# tcp tcplistener


【解决方案1】:

如果不存在挂起的连接请求,您正忙于等待。这不是必需的。只需删除那个if。确保你明白为什么没有必要。

我不明白为什么有两个嵌套循环。你只需要一个。只拨打一次Start

我可以告诉您,您还没有阅读文档。相当危险。您可以自己回答这些问题。

【讨论】:

    【解决方案2】:

    没有。 Start 只需要调用一次。移除外部的while循环

    【讨论】:

      猜你喜欢
      • 2018-04-14
      • 1970-01-01
      • 2010-09-26
      • 2014-03-16
      • 1970-01-01
      • 2011-02-16
      • 1970-01-01
      • 2011-08-30
      • 2012-12-16
      相关资源
      最近更新 更多