如何在C#tcp服务器中正确地移动到下一个客户端?

如何在C#tcp服务器中正确地移动到下一个客户端?,c#,tcp,C#,Tcp,这基本上就是我用于C#tcp服务器的代码。服务器需要处理多个连接,但不能同时处理,因此它可以与一个客户机一起工作,并且当该客户机断开连接时,继续处理下一个客户机。客户端可以发送不同数量的消息,服务器需要处理这些消息 问题是当第一个客户端断开连接时,它永远不会连接到下一个客户端。我尝试在第二个while循环中添加代码以检查“if(!Client.Connected)break;”,但Connected始终返回true,即使在我的客户端应用程序关闭之后也是如此。在第一个客户机断开连接后,如何才能连接

这基本上就是我用于C#tcp服务器的代码。服务器需要处理多个连接,但不能同时处理,因此它可以与一个客户机一起工作,并且当该客户机断开连接时,继续处理下一个客户机。客户端可以发送不同数量的消息,服务器需要处理这些消息


问题是当第一个客户端断开连接时,它永远不会连接到下一个客户端。我尝试在第二个while循环中添加代码以检查“if(!Client.Connected)break;”,但Connected始终返回true,即使在我的客户端应用程序关闭之后也是如此。在第一个客户机断开连接后,如何才能连接到第二个客户机

您需要为每个接受的套接字启动一个新线程或注册一个新侦听器,而不是在接受新客户端的同一个循环中处理它。accept循环不应该做其他事情

            tcpListener = new TcpListener(IPAddress.Any, 6007);
            tcpListener.Start();
            while (true)
            {
                TcpClient client = tcpListener.AcceptTcpClient();
                sw = new StreamWriter(client.GetStream());
                sr = new StreamReader(client.GetStream());
                while(true)
                    parseRequest(sr.ReadLine());
            }