Example #1
0
        private void HandleUpdate(string[] message)
        {
            if (message.GetLength(0) != 2)
            {
                return;
            }

            try
            {
                string[] files = Directory.GetFiles(Path.Combine(Application.StartupPath, message[0]));
                if (message[1].Equals(files[0]))
                {
                    _manager.SendMessage("0");
                }
                else
                {
                    string b = new FileInfo(Path.Combine(Application.StartupPath, message[0], files[0])).Length.ToString();
                    _manager.SendMessage(b + '/' + Path.GetFileName(files[0]));
                    _client.Client.SendFile(Path.Combine(Application.StartupPath, message[0], files[0]));
                }
            }
            catch (Exception)
            {
                _manager.SendMessage("0");
            }
        }
Example #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;
                }
            }
        }
Example #3
0
        public void VerifyUserLogin(string username, string password, TcpClient client, string userPath)
        {
            string path = userPath + @"\" + username + ".txt";

            if (File.Exists(path) == false)
            {
                Protocol loginInvalid = ProtocolCreator.LoginInvalid();

                NetworkManager.SendMessage(loginInvalid, client);
            }
            else if (File.Exists(path) == true)
            {
                if (VerifyUserData(username, password, path) == true)
                {
                    Protocol loginOK = ProtocolCreator.LoginOk();
                    NetworkManager.SendMessage(loginOK, client);

                    string protocolString = loginOK.ToString();

                    char[] protocolStringArray = protocolString.ToCharArray();

                    string sessionKey = string.Empty;

                    if (protocolStringArray[0] == 'C' && protocolStringArray[1] == 'H' && protocolStringArray[2] == 'A' && protocolStringArray[3] == 'T' && protocolStringArray[4] == 'L' && protocolStringArray[5] == 'O')
                    {
                        for (int i = 6; i < protocolStringArray.Length; i++)
                        {
                            sessionKey = sessionKey + protocolStringArray[i];
                        }

                        this.OnlineUser.Add(new User(username, client, sessionKey));

                        Console.WriteLine("{0} ({1}) has logged in!", username, ((IPEndPoint)client.Client.RemoteEndPoint).Address.ToString());

                        MessageManager messageManager = new MessageManager(this, client);
                        messageManager.ForwardMessagesToAllClients();
                    }
                }
                else
                {
                    Protocol loginInvalid = ProtocolCreator.LoginInvalid();
                    NetworkManager.SendMessage(loginInvalid, client);
                }
            }
        }
Example #4
0
        public static void CreateNewUser(string username, string password, TcpClient client, string userPath)
        {
            string path = userPath + @"\" + username + ".txt";

            if (File.Exists(path) == true)
            {
                Protocol registrationInvalid = ProtocolCreator.RegistrationInvalid();

                NetworkManager.SendMessage(registrationInvalid, client);
            }
            else
            {
                if (CheckIfLegalUserData(username, password) == false)
                {
                    Protocol registrationInvalid = ProtocolCreator.RegistrationInvalid();

                    NetworkManager.SendMessage(registrationInvalid, client);
                }
                else
                {
                    string[] userFile = new string[3];

                    userFile[0] = "Username: "******"Password: "******"User Group: User";

                    File.WriteAllLines(path, userFile);

                    Protocol registrationOk = ProtocolCreator.RegistrationOk();

                    NetworkManager.SendMessage(registrationOk, client);

                    Console.WriteLine("{0} ({1}) has registered!", username, ((IPEndPoint)client.Client.RemoteEndPoint).Address.ToString());
                }
            }
        }