/// <summary> /// Handle messaging with the server. /// </summary> /// <param name="o"></param> static void ConnectionListener() { 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; } Message message = Message.FromBytes(buffer); Libs.DisplayMessage(message); } } catch (IOException e) { Libs.StatusMessage(e.Message, StatusType.FAILURE); } stream.Close(); Libs.StatusMessage("Connection lost with the server."); }
/// <summary> /// Relay a message sent by one client to the other clients. /// </summary> /// <param name="client"></param> /// <param name="message"></param> static void ReceiveMessage(int client, Message message) { Libs.DisplayMessage(message); foreach (int otherClient in clients.Keys) { if (otherClient != client) { Libs.SendMessage(clients[otherClient].GetStream(), message); } } }