我目前正在使用 TcpListener 来寻址传入连接,每个传入连接都有一个线程来处理通信,然后关闭该单个连接。守则如下:
TcpListener listener = new TcpListener(IPAddress.Any, Port);
System.Console.WriteLine("Server Initialized, listening for incoming connections");
listener.Start();
while (listen)
{
// Step 0: Client connection
TcpClient client = listener.AcceptTcpClient();
Thread clientThread = new Thread(new ParameterizedThreadStart(HandleConnection));
clientThread.Start(client.GetStream());
client.Close();
}
listen
变量是一个布尔值,它是类上的一个字段。现在,当程序关闭时,我希望它停止监听客户端。设置 listen to false
将阻止它接受更多的连接,但是由于 AcceptTcpClient
是一个阻塞调用,它至少会接受下一个客户端和 THEN 退出。有没有办法迫使它突然爆发然后停止,就在那时那地?调用监听器有什么效果。其他阻塞调用正在运行时,Stop () have?