/// <summary> /// Handle messaging with a single client. /// </summary> /// <param name="o"></param> static void ConnectionListener(object o) { int id = (int)o; TcpClient client; lock (_lock) client = clients[id]; NetworkStream stream = client.GetStream(); byte[] buffer = new byte[client.ReceiveBufferSize]; try { while (!exit) { int bytesRead = stream.Read(buffer, 0, client.ReceiveBufferSize); if (bytesRead == 0) { break; } ReceiveMessage(id, Message.FromBytes(buffer)); } } catch (IOException e) { Libs.StatusMessage(e.Message, StatusType.FAILURE); } Libs.StatusMessage("Lost connection with the client."); }