Skip to content
This repository was archived by the owner on May 5, 2025. It is now read-only.

Main Release

Latest

Choose a tag to compare

@Danex-Exe Danex-Exe released this 11 Dec 08:10
67053fe

Чат-приложение

Описание проекта

Данное приложение представляет собой реализацию базового системы чата на Python, использующем сокеты для обеспечения сетевого взаимодействия между пользователями. Приложение включает клиентскую и серверную части, что позволяет пользователям регистрироваться, входить в систему и обмениваться сообщениями в реальном времени.

Структура приложения

Клиентская часть (app.py)

Клиентская часть отвечает за взаимодействие с пользователем и выполнение следующих задач:

  1. Подключение к серверу:

    • Программа устанавливает соединение с сервером по IP-адресу и порту, получая локальный IP-адрес устройства.
  2. Регистрация и авторизация:

    • Пользователь может создать новый аккаунт, предоставив уникальный логин и надежный пароль (не менее 8 символов).
    • Система проверяет существование логина и корректность пароля. Если логин верный, пользователь успешно авторизуется.
  3. Шифрование сообщений:

    • Программа использует словарь кодов для шифрования текстов перед их отправкой. При получении сообщений закодированный текст расшифровывается с помощью обратного алгоритма.
  4. Обмен сообщениями:

    • Пользователи могут отправлять и получать сообщения. Программа поддерживает возможность отправки пустых сообщений, которые обрабатываются корректно.
    • При получении сообщения пользователю выводится текст, а также отправитель.
  5. Интерфейс взаимодействия:

    • Программа предоставляет простой текстовый интерфейс для выбора действий: вход в систему, регистрация или выход.

Серверная часть (server.py)

Серверная часть игры играет ключевую роль в управлении пользователями и средой общения:

  1. Прослушивание и обработка подключений:

    • Сервер ожидает подключения от клиентов и создает новый поток для каждого соединения, позволяя вести параллельный обмен сообщениями между несколькими пользователями.
  2. Управление пользователями:

    • Сервер хранит данные о зарегистрированных пользователях, их статусах и онлайн-статусе.
    • При регистрации нового пользователя вновь созданные учетные данные сохраняются в файле на сервере.
  3. Обработка запросов:

    • Сервер отвечает на запросы клиентов, проверяя существование логинов, корректность паролей и предоставляя возможность для создания, удаления учетных записей и обмена сообщениями.
  4. Логирование и обработка ошибок:

    • При каждом действии сервер выводит лог событий в терминал, что улучшает отслеживание работы приложения и упрощает обнаружение проблем.

Шифрование и безопасность

Приложение реализует базовый механизм шифрования текстов, где каждую букву заменяет на уникальный код из заранее заданного словаря. Например:

codes = {
    'а': 'p1vTLSEE', 
    'б': 'lLS4As63'
    # и т. д.
}

Система также использует обратный словарь для расшифровки сообщений. Этот подход помогает поддерживать уровень конфиденциальности, но стоит отметить, что он не является защищенным с точки зрения современных стандартов криптографии.

Ограничения и будущее развитие

На данный момент приложение обладает базовым функционалом, что делает его подходящим для изучения принципов разработки клиент-серверных приложений. В будущем предположительно можно реализовать следующие функции:

  • Улучшение криптографии с использованием устойчивых методов шифрования, таких как AES.
  • Внедрение графического интерфейса для повышения удобства пользователя.
  • Реализация группового чата, позволяющего нескольким пользователям общаться одновременно.
  • Добавление системы уведомлений для информирования пользователей о новых сообщениях.
  • Логирование действий пользователей для повышения уровня безопасности и отслеживания активности.

Проект является образцом реализации основ клиент-серверной модели чата и предоставляет отличную базу для дальнейшего развития и улучшения.