Esempio n. 1
0
        private void ChatIn() // Авторизация в чате
        {
            if (BtnEnterChat.InvokeRequired)
            {
                BtnEnterChat.Invoke(new Action(() => BtnEnterChat.Enabled = false));
            }
            else
            {
                BtnEnterChat.Enabled = false;
            }
            Connection();
            Stopwatch timeConnect = new Stopwatch();

            timeConnect.Start();
            while (timeConnect.Elapsed < TimeSpan.FromSeconds(5)) // в течении 5 секунд проверяем установленно ли подключение к серверу
            {
                if (_connection)                                  // как только подключение будет установленно отправляем данные пользователя на сервер
                {
                    ClearChat();
                    string Name     = TxtBoxUserName.Text;
                    string Password = GetHashString(TxtBoxUserPassword.Text);
                    Send($"#authoriz&{Name}~{Password}");
                    Stopwatch time = new Stopwatch();
                    time.Start();
                    while (time.Elapsed < TimeSpan.FromSeconds(5))
                    {
                        if (_authoriz)
                        {
                            AuthSucsess();
                            MessageBox.Show("Вы авторизированы!", "Успех", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            break;
                        }
                    }
                    time.Stop();
                    if (!_authoriz)
                    {
                        ChatLogOff();
                    }
                    break;
                }
            }
            timeConnect.Stop();     // останавливаем таймер
            if (!_connection)
            {
                if (BtnEnterChat.InvokeRequired)
                {
                    BtnEnterChat.Invoke(new Action(() => BtnEnterChat.Enabled = true));
                }
                else
                {
                    BtnEnterChat.Enabled = true;
                }
            }
        }
Esempio n. 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();       // отключаемся от сервера
        }
Esempio n. 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 = "Войти";
                }
            }
        }
Esempio n. 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 = "Выйти";
            }
        }