Skip to content
/ MPP Public

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

Notifications You must be signed in to change notification settings

GameTrue/MPP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Chat Application (MPP)

Этот проект был создан в рамках лабораторных работ по дисциплине "Многопоточное программирование" разработанной совместно с компанией "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 или выше.

Инструкции по сборке:

  1. Склонируйте репозиторий:

    git clone https://github.com/GameTrue/MPP.git
    cd MPP
  2. Создайте директорию для сборки и перейдите в нее:

    mkdir build && cd build
  3. Запустите CMake для генерации файлов сборки:

    cmake ..
  4. Соберите проект:

    cmake --build .

Запуск сервера:

После сборки выполните следующую команду:

./chat_server

Сервер будет запущен на порту 12345.

Запуск клиента:

После сборки выполните следующую команду:

./chat_client

Примеры использования

  1. Запустите сервер, чтобы обеспечить работу чата.
  2. Запустите клиента для регистрации нового пользователя.
  3. Создайте новый чат и начните общение с другими пользователями.

Авторы

Лицензия

Проект распространяется для учебных целей. Использование и модификация кода разрешены только в образовательных и некоммерческих целях.

About

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

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published