Skip to content

mewo-bean/decentralised-chat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Децентрализованный чат

Автор: Безрукова Анна

Описание

Описание

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

Возможности или просто фичи

🌐 Децентрализованная архитектура без единого сервера

📦 Передача файлов (включая бинарные)

💬 Поддержка длинных сообщений (> 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!"

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages