Exemple #1
0
 private void HandleCommand(string data) // обработчик команд с сервера
 {
     if (data.Contains("#updatechat"))
     {
         UpdateChat(data);
         return;
     }
     else if (data.Contains("#history&"))
     {
         GetHistory(data);
         return;
     }
     else if (data.Contains("#getonline&"))
     {
         GetOnline(data); // отображает список пользователей онлайн
         return;
     }
     else if (data.Contains("#auth&"))
     {
         if (menuStrip.InvokeRequired)
         {
             TxtBoxUserName.Invoke(new Action(() => регистрацияToolStripMenuItem.Enabled = false));
         }
         else
         {
             регистрацияToolStripMenuItem.Enabled = false;
         }
         _authoriz = true;
         return;
     }
     else if (data.Contains("#alreadyauth&"))
     {
         MessageBox.Show("Пользователь с этого аккаунта уже авторизирован!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
         return;
     }
     else if (data.Contains("#badauth&"))
     {
         MessageBox.Show("Неверное имя пользователя или пароль!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
         return;
     }
     else if (data.Contains("#badreg&"))
     {
         MessageBox.Show("Такое имя уже существует!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
         return;
     }
     else if (data.Contains("#regandauth&"))
     {
         AuthSucsess();
         MessageBox.Show("Вы успешно зарегистрированны и авторизированы!", "Успех", MessageBoxButtons.OK, MessageBoxIcon.Information);
         return;
     }
     else if (data.Contains("#regoff&"))
     {
         MessageBox.Show("Регистрация на сервере выключена, обратитесь к администатору!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
         return;
     }
 }
Exemple #2
0
        private void ChatLogOff() // выйти из чата
        {
            if (BtnChatSend.InvokeRequired)
            {
                BtnChatSend.Invoke(new Action(() => BtnChatSend.Enabled = false));
            }
            else
            {
                BtnChatSend.Enabled = false;
            }

            if (TxtBoxChatMsg.InvokeRequired)
            {
                TxtBoxChatMsg.Invoke(new Action(() => TxtBoxChatMsg.Enabled = false));
            }
            else
            {
                TxtBoxChatMsg.Enabled = false;
            }

            if (BtnEnterChat.InvokeRequired)
            {
                BtnEnterChat.Invoke(new Action(() => BtnEnterChat.Enabled = true));
            }
            else
            {
                BtnEnterChat.Enabled = true;
            }

            if (BtnEnterChat.InvokeRequired)
            {
                BtnEnterChat.Invoke(new Action(() => BtnEnterChat.Text = "Войти"));
            }
            else
            {
                BtnEnterChat.Text = "Войти";
            }

            if (menuStrip.InvokeRequired)
            {
                TxtBoxUserName.Invoke(new Action(() => регистрацияToolStripMenuItem.Enabled = false));
            }
            else
            {
                регистрацияToolStripMenuItem.Enabled = false;
            }

            _authoriz   = false;
            _connection = false;
            ClearChat();        // очищаем чат
            ClearOnlineUsers(); // очищаем список онлайн пользователей
            EndSession();       // отключаемся от сервера
        }
Exemple #3
0
        private void Listner() // слушаем сообщения с сервера
        {
            try
            {
                while (_serverSocket.Connected)                                                        // если сокет подключен к удаленному узлу, то считываем данные
                {
                    byte[] buffer   = new byte[65536];                                                 // создаем буфер для приема сообщений
                    int    bytesRec = _serverSocket.Receive(buffer);                                   // принимаем данные
                    Array.Resize(ref buffer, bytesRec);                                                // обрезаем массив байтов по длине полученного сообщения
                    buffer = DESCryptography.Decrypt(buffer, DESCryptography.Key, DESCryptography.Iv); // расшифровываем сообщение
                    string data = Encoding.UTF8.GetString(buffer);                                     // преобразуем массив байтов в текст
                    HandleCommand(data);                                                               // передаем сообщение в обработчик команд
                }
            }
            catch (Exception)
            {
                ClearChat();        // очищаем окно чата
                ClearOnlineUsers(); // очищаем список онлайн пользователей
                Print($"Вы были отключены от сервера!");

                // Возвращаем все элементы формы в начальное положеие
                if (menuStrip.InvokeRequired)
                {
                    TxtBoxUserName.Invoke(new Action(() => регистрацияToolStripMenuItem.Enabled = true));
                }
                else
                {
                    регистрацияToolStripMenuItem.Enabled = true;
                }

                if (TxtBoxUserName.InvokeRequired)
                {
                    TxtBoxUserName.Invoke(new Action(() => TxtBoxUserName.Enabled = true));
                }
                else
                {
                    TxtBoxUserName.Enabled = true;
                }

                if (TxtBoxUserPassword.InvokeRequired)
                {
                    TxtBoxUserPassword.Invoke(new Action(() => TxtBoxUserPassword.Enabled = true));
                }
                else
                {
                    TxtBoxUserPassword.Enabled = true;
                }

                if (BtnEnterChat.InvokeRequired)
                {
                    BtnEnterChat.Invoke(new Action(() => BtnEnterChat.Enabled = true));
                }
                else
                {
                    BtnEnterChat.Enabled = true;
                }

                if (BtnChatSend.InvokeRequired)
                {
                    BtnChatSend.Invoke(new Action(() => BtnChatSend.Enabled = false));
                }
                else
                {
                    BtnChatSend.Enabled = false;
                }

                if (TxtBoxChatMsg.InvokeRequired)
                {
                    TxtBoxChatMsg.Invoke(new Action(() => TxtBoxChatMsg.Enabled = false));
                }
                else
                {
                    TxtBoxChatMsg.Enabled = false;
                }

                if (BtnEnterChat.InvokeRequired)
                {
                    BtnEnterChat.Invoke(new Action(() => BtnEnterChat.Text = "Войти"));
                }
                else
                {
                    BtnEnterChat.Text = "Войти";
                }
            }
        }
Exemple #4
0
        private void AuthSucsess()
        {
            // Активируем видимость элеменов чата и отключаем видимость элементов регистрации в чате

            if (TxtBoxChatMsg.InvokeRequired)
            {
                TxtBoxChatMsg.Invoke(new Action(() => TxtBoxChatMsg.Enabled = true));
            }
            else
            {
                TxtBoxChatMsg.Enabled = true;
            }

            if (BtnChatSend.InvokeRequired)
            {
                BtnChatSend.Invoke(new Action(() => BtnChatSend.Enabled = true));
            }
            else
            {
                BtnChatSend.Enabled = true;
            }

            if (TxtBoxUserPassword.InvokeRequired)
            {
                TxtBoxUserPassword.Invoke(new Action(() => TxtBoxUserPassword.Enabled = false));
            }
            else
            {
                TxtBoxUserPassword.Enabled = false;
            }

            if (TxtBoxUserName.InvokeRequired)
            {
                TxtBoxUserName.Invoke(new Action(() => TxtBoxUserName.Enabled = false));
            }
            else
            {
                TxtBoxUserName.Enabled = false;
            }

            if (TxtBoxChatMsg.InvokeRequired)
            {
                TxtBoxChatMsg.Invoke(new Action(() => TxtBoxChatMsg.Focus()));
            }
            else
            {
                TxtBoxChatMsg.Focus();
            }

            if (BtnEnterChat.InvokeRequired)
            {
                BtnEnterChat.Invoke(new Action(() => BtnEnterChat.Enabled = true));
            }
            else
            {
                BtnEnterChat.Enabled = true;
            }

            if (BtnEnterChat.InvokeRequired)
            {
                BtnEnterChat.Invoke(new Action(() => BtnEnterChat.Text = "Выйти"));
            }
            else
            {
                BtnEnterChat.Text = "Выйти";
            }
        }