-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
做,當主循環將繼續偵聽其他連接的處理。