我是否需要多个流和 TCP 客户端才能在 c# 中创建聊天应用程序



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

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客户端的简要指南将不胜感激。

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

你仍然会有一个侦听器...但是每个"接受"应该生成一个不同的线程或任务。 然后,新线程将创建自己的流。

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

            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
                   }
            }

最新更新