我正在编写一个处理服务器和客户端的应用程序。我不一定知道如何让服务器处理多个客户端,这就是我遇到问题的地方。现在服务器端只处理一个客户端。那么我该如何处理多个客户。
问问题
184 次
1 回答
2
您可以保持 TcpListener 打开并接受多个连接。为了有效地处理多个连接,您需要对服务器代码进行多线程处理。
static void Main(string[] args)
{
while (true)
{
Int32 port = 14000;
IPAddress local = IPAddress.Parse("127.0.0.1");
TcpListener serverSide = new TcpListener(local, port);
serverSide.Start();
Console.Write("Waiting for a connection with client... ");
TcpClient clientSide = serverSide.AcceptTcpClient();
Task.Factory.StartNew(HandleClient, clientSide);
}
}
static void HandleClient(object state)
{
TcpClient clientSide = state as TcpClient;
if (clientSide == null)
return;
Console.WriteLine("Connected with Client");
clientSide.Close();
}
现在你可以做所有你需要做的处理,HandleClient
而主循环将继续监听额外的连接。
于 2013-03-24T02:22:02.013 回答