private static void ReadCallback(IAsyncResult ar)
{
try
{
var clientID = (long)ar.AsyncState;
var client = Clients[clientID];
int length = client.Stream.EndRead(ar);
if (length == 0)
{
CloseSocket(ar);
return;
}
client.HandleRequest(client.ReceiveBuffer, length);
client.Stream.BeginRead(client.ReceiveBuffer, 0, client.ReceiveBuffer.Length, ReadCallback, clientID);
}
catch
{
CloseSocket(ar);
}
}