public void ReceiveCallBack(IAsyncResult result) { try { socket = (Socket)result.AsyncState; if (!socket.Connected) { Disconnect(); return; } int size = socket.EndReceive(result); byte[] buffer = new byte[size]; Array.Copy(_buffer, buffer, buffer.Length); BigEndianReader reader = new BigEndianReader(buffer); ConnectionHandler.BuildPacket(buffer, this, server); socket.BeginReceive(_buffer, 0, _buffer.Length, SocketFlags.None, new AsyncCallback(ReceiveCallBack), socket); } catch (Exception e) { Disconnect(); return; } }