TcpListener在c#中的正确使用
本文关键字:TcpListener | 更新日期: 2023-09-27 18:02:37
我正在试验使用该系统的客户机-服务器应用程序。. 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()
?
如果没有挂起的连接请求,您正忙于等待。这是不必要的。只要删除那个if
。确保你明白为什么它是不必要的。
我不明白为什么有两个嵌套循环。你只需要一个。只调用Start
一次
我看得出来你没有读过文档。很危险的。你可以自己回答这些问题。
No。Start只需要调用一次。删除外部while循环