Ich versuche, einfache Client-Server-App, basierend auf asynchronen Sockets zu schreiben. Alles funktioniert gut, bis ich versuche, mehrere Clients zu verbinden. Sie verbinden gut, aber nur die „neueste“ können die Daten an den Server senden, andere Ausnahme werfen:Async Sockets in C#
„IAsyncResult Objekt nicht zurückgegeben wurde“
Hier ist mein AcceptCallback Code:
private void AcceptCallback(IAsyncResult AR)
{
try
{
_clientSocket = _serverSocket.EndAccept(AR);
_buffer = new byte[_clientSocket.ReceiveBufferSize];
_clientSocket.BeginReceive(_buffer, 0, _buffer.Length, SocketFlags.None, new AsyncCallback(ReceiveCallback), null);
_serverSocket.BeginAccept(new AsyncCallback(AcceptCallback), null);
Console.WriteLine("Client connected!");
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
Irgendwelche Ideen, was ist los? Ich lerne gerade, es könnte etwas dummes und offensichtliches sein, aber ich sehe es nicht.