Реализация текстового чата между двумя хостами. Связь осуществляется в среде IPv6 и выполняет функции входа и регистрации, двухточечный чат, групповой чат и другие функции.
UDP — это протокол без установления соединения. Источник и терминал не устанавливают соединение перед передачей данных. Когда он хочет передать данные, он просто захватывает данные из приложения и как можно быстрее выбрасывает их в сеть.
Основными методами, используемыми на уровне протокола связи, являются:
socket([family[, type[, proto]]])
bind(address: Union[_Address, bytes])
sendto(data, address,)
recvfrom(bufsize, flags,)
В процессе программирования необходима база данных для хранения имени пользователя, пароля, статуса, IP-адреса и порта пользователя. При выборе базы данных использовалась облегченная база данных SQLite3 для облегчения миграции базы данных и т. д.
имя функции | Функция |
---|---|
инициализировать (сам) | Используется для создания и открытия баз данных. |
select_all (сам) | Используется для получения всей информации о пользователе в соответствующей таблице базы данных. |
зарегистрироваться (я, имя пользователя, пароль, IP, порт) | Вызывается во время регистрации для добавления информации о пользователе. |
search_username(я, имя пользователя) | Найти информацию о пользователе по имени пользователя |
login_success(я, имя пользователя, ip, порт) | После успешного входа измените информацию о статусе пользователя в базе данных. |
login_check(я, имя пользователя, пароль, IP, порт) | Используется для проверки правильности имени пользователя и пароля при входе в систему. |
logout_success (я, имя пользователя) | Изменение статуса пользователя при выходе пользователя из системы |
db_close (сам) | Закрыть базу данных |
Введите каталог, в котором находится код, на двух хостах, которые могут обмениваться данными, и выполните python3 Client.py
и python3 Server.py
соответственно. Клиент может открыть несколько серверов в соответствии с потребностями, но сервер может открыть только один. При запуске сервера база данных будет открыта.
Сделайте выбор в соответствии с подсказками для достижения различных функций. В одноранговом чате любая из сторон может закрыть чат, отправив END, а другая сторона может подтвердить это в соответствии с подсказками. Принцип реализации группового чата аналогичен, аналогичен и процесс запуска теста.