0

我在服务器上使用以下代码进行服务器和客户端之间的通信

TcpListener server = new TcpListener(IPAddress.Any, 9999);
server.Start();

Console.WriteLine("Waiting for client connections");
TcpClient client = server.AcceptTcpClient();
Console.WriteLine("Client request accepted");

NetworkStream stream = client.GetStream();
StreamReader reader = new StreamReader(stream);
StreamWriter writer = new StreamWriter(stream);

现在这段代码可以很好地连接单个客户端,但是我需要做哪些调整才能允许多个客户端连接到我的服务器?

我是否需要在每个客户端的新端口上安装一个新的 TCP 侦听器?我需要多个 TCP 客户端和流吗?我们将不胜感激有关使此代码能够处理 >1 个客户的简要指南。

4

3 回答 3

2

您可能希望将 放在server.AcceptTcpClient()一个循环中,因为每次新客户端连接时它都会返回另一个TcpClient. 您可以在此处的 MSDN 文档中看到一个简单的示例:http://msdn.microsoft.com/en-us/library/system.net.sockets.tcplistener.accepttcpclient.aspx

于 2012-11-16T15:34:50.127 回答
1

你仍然会有一个听众……但每个“接受”都应该产生一个不同的线程或任务。然后新线程将创建它自己的流。

于 2012-11-16T15:35:38.937 回答
0

在服务器端做这样的事情:

            while (true)
            {
              if (server.Pending()) // if there are any pending connections to server
                  {
                      //accept tcpClient and perform further operations.
                      //create a different thread per client
                   }
            }
于 2012-11-16T15:39:16.890 回答