我在服务器上使用以下代码进行服务器和客户端之间的通信
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客户的简要指南将不胜感激。
答案 0 :(得分:2)
您希望将server.AcceptTcpClient()
置于循环中,因为每次新客户端连接时都会返回另一个TcpClient
。您可以在MSDN文档here: http://msdn.microsoft.com/en-us/library/system.net.sockets.tcplistener.accepttcpclient.aspx
答案 1 :(得分:1)
你仍然会有一个听众......但是每个人都接受了#34;应该产生不同的线程或任务。然后新线程将创建它自己的流。
答案 2 :(得分: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
}
}