static private void _OnRecieveData(IAsyncResult ar) { try { run = false; if (serverSocket == null || serverSocket.Connected == false) { return; } int count = serverSocket.EndReceive(ar); if (count == 0) { serverSocket.Close(); return; } messageHelper.AddCount(count); NetCmdHandle.Dispatch(messageHelper, serverSocket); serverSocket.BeginReceive(messageHelper.Buffer, messageHelper.GetStartIndex, messageHelper.GetRemainBytes, SocketFlags.None, _OnRecieveData, null); run = true; } catch (Exception e) { Console.WriteLine(e); } }