private void SendResponse(IClientMessage response) { if (!_socket.Connected) { Debug.WriteLine("Socket disconnected when sending response!"); return; } Debug.WriteLine(response); SocketAsyncEventArgs args = new SocketAsyncEventArgs(); args.RemoteEndPoint = _socket.RemoteEndPoint; args.UserToken = _socket; MemoryStream ms = new MemoryStream(); response.Serialize(ms); byte[] data = ms.GetBuffer(); args.SetBuffer(data, 0, data.Length); _socket.SendAsync(args); }