Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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;
                }
            }
        }