Ich habe diesen Code für einen TCP Listener. Das Problem ist wenn ich mich verbinde kann sich kein zweiter Client verbinden bis der erste oder alle vorigen die Verbindung geschlossen haben. Wie kann ich machen das mehrere Clients gleichzeitig verarbeitet werden können?
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
class Program
{
static void Main()
{
TcpListener server = null;
try
{
IPAddress ipAddress = IPAddress.Parse("127.0.0.1");
int port = 8080;
server = new TcpListener(ipAddress, port);
server.Start();
Console.WriteLine("Server gestartet...");
while (true)
{
TcpClient client = server.AcceptTcpClient();
Console.WriteLine("Verbindung hergestellt!");
HandleClient(client);
}
}
catch (Exception e)
{
Console.WriteLine("Fehler: " + e);
}
finally
{
server.Stop();
}
}
static void HandleClient(TcpClient client)
{
NetworkStream stream = client.GetStream();
string response = "Hallo, Client!";
byte[] responseData = Encoding.ASCII.GetBytes(response);
stream.Write(responseData, 0, responseData.Length);
stream.Flush();
byte[] buffer = new byte[256];
int bytesRead = stream.Read(buffer, 0, buffer.Length);
string data = Encoding.ASCII.GetString(buffer, 0, bytesRead);
Console.WriteLine("Empfangene Nachricht:" + data);
stream.Close();
client.Close();
}
}