Децентрализованный чат
Автор: Безрукова Анна
Описание
Программа представляет собой децентрализованный чат с графическим интерфейсом. Она позволяет обмениваться сообщениями и файлами без централизованного сервера. Работает в графическом и консольном режиме, поддерживает смену ника, отказоустойчивость, передачу бинарных файлов и корректную работу с длинными сообщениями.
🌐 Децентрализованная архитектура без единого сервера
📦 Передача файлов (включая бинарные)
💬 Поддержка длинных сообщений (> 64 КБ)
👥 Список подключённых участников
🔀 Смена ника во время работы
💻 Запуск нескольких экземпляров на одном компьютере
🧱 Отказоустойчивость: при отключении одного узла сеть продолжает работу
🔧 Графический интерфейс (Tkinter) и полноценный консольный режим
📜 Пакетный режим (однократная отправка сообщения/файла без GUI)
❤️ Heartbeat для поддержания сети
project/
├── src/
│ ├── __init__.py
│ ├── network.py
│ ├── gui.py
│ └── utils.py
├── tests/
│ ├── __init__.py
│ ├── test_utils.py
│ └── test_network.py
├── main.py
├── pytest.ini
├── README.md
└── requirements.txt
Установите зависимости из requirements.txt:
python -m pip install -r requirements.txt#GUI:
python main.py [--host HOST] [--port PORT] [--debug]
#Консоль:
python main.py --nogui [--host HOST] [--port PORT] [--debug]
#Пакетный:
python main.py batch --host localhost --port 5000 --send "Привет"python main.py # GUI с авто-портом
python main.py --port 5000 # GUI с портом
python main.py --nogui --port 6000 # Консольный режим
python main.py batch --host 127.0.0.1 --port 5000 --send "Hello!"