public static void HandleNewSession(object data) { TcpClient client = (TcpClient)data; NetworkStream stream = client.GetStream(); if (stream.CanWrite && stream.CanRead) { string userRequest = NetworkManager.ReadMessage(client, 28); userAccountManager.HandleUserRequest(userRequest, client, settings.ServerUserPath); } }
public void ForwardMessagesToAllClients() { while (true) { if (client.Connected == true) { NetworkStream clientStream = client.GetStream(); if (clientStream.DataAvailable == false) { Thread.Sleep(100); continue; } string messageProtocol = NetworkManager.ReadMessage(client, 302); char[] mesageProtocolArray = messageProtocol.ToCharArray(); if (messageProtocol[0] == 'C' && messageProtocol[1] == 'H' && messageProtocol[2] == 'A' && messageProtocol[3] == 'T' && messageProtocol[4] == 'M' && messageProtocol[5] == 'E') { string messageString = string.Empty; for (int i = 6; i < mesageProtocolArray.Length; i++) { messageString = messageString + mesageProtocolArray[i]; } string[] messageProtocolContent = messageString.Split('-'); Protocol message = ProtocolCreator.PublishMessage(messageProtocolContent[0], GetUserGroup(messageProtocolContent[0]), messageProtocolContent[1]); foreach (User user in userAccountManager.OnlineUser) { NetworkManager.SendMessage(message, user.Client); } } Thread.Sleep(100); } else { break; } } }