void BeginReceive(ZYSocketAsyncEventArgs e)
{
if (e.SocketError == SocketError.Success && e.BytesTransferred > 0)
{
e.Advance();
if (!e.AcceptSocket.ReceiveAsync(e))
{
if (e.Add_check() > 512)
{
e.Reset_check();
ThreadPool.QueueUserWorkItem(obj => BeginReceive((obj as ZYSocketAsyncEventArgs)!), e);
}
else
BeginReceive(e);
}
e.Reset_check();
}
else
{
e.Advance(-1);
Disconnect_It(e);
}
}