Этот проект был создан в рамках лабораторных работ по дисциплине "Многопоточное программирование" разработанной совместно с компанией "Kaspersky".
Проект представляет собой клиент-серверное чат-приложение, реализующее основные функции обмена сообщениями и управления пользователями. Приложение поддерживает регистрацию, авторизацию, создание чатов, подключение/отключение пользователей к чатам, а также отправку и получение сообщений.
Основной упор сделан на использование многопоточности для обработки клиентских запросов на сервере, а также на реализацию сетевого взаимодействия с использованием библиотеки Boost.Asio, а также реализация клиентской части с использованием QT.
- Многопоточная обработка клиентских запросов.
- Регистрация и авторизация пользователей.
- Создание и управление чатами.
- Рассылка сообщений участникам чатов.
- Логирование событий сервера.
- Регистрация новых пользователей.
- Авторизация существующих пользователей.
- Создание чатов, подключение к ним и выход из чатов.
- Обмен сообщениями в чатах.
- Удобный пользовательский интерфейс на основе Qt.
- C++ — основной язык программирования.
- Boost.Asio — для реализации сетевого взаимодействия.
- Qt — для создания пользовательского интерфейса.
- CMake — для сборки проекта.
- Многопоточность — для обработки запросов на сервере.
Проект разделен на серверную и клиентскую части:
back/src/— основные компоненты сервера, включая классыChatApp,Chat,User,Message.server/BoostServer.cpp— основной файл для запуска сервера.
client/— реализация клиентской части с использованием Qt.client/ChatWindow.cppиclient/ChatWindow.h— основной интерфейс чата.client/LoginDialog.cppиclient/LoginDialog.h— интерфейс для авторизации и регистрации.client/MessageItem.cppиclient/MessageItem.h— отображение сообщений в чате.
- Сервер ведет логи событий, которые можно найти в файле
server_0.log.
- C++ компилятор с поддержкой стандарта C++17.
- Qt 5 (модули QThread, Core, Widgets, Network).
- Boost (модули system, asio, thread, log, log_setup, unit_test_framework).
- CMake версии 3.10 или выше.
-
Склонируйте репозиторий:
git clone https://github.com/GameTrue/MPP.git cd MPP -
Создайте директорию для сборки и перейдите в нее:
mkdir build && cd build
-
Запустите CMake для генерации файлов сборки:
cmake ..
-
Соберите проект:
cmake --build .
После сборки выполните следующую команду:
./chat_serverСервер будет запущен на порту 12345.
После сборки выполните следующую команду:
./chat_client- Запустите сервер, чтобы обеспечить работу чата.
- Запустите клиента для регистрации нового пользователя.
- Создайте новый чат и начните общение с другими пользователями.
- GitHub: GameTrue
Проект распространяется для учебных целей. Использование и модификация кода разрешены только в образовательных и некоммерческих целях.