Skip to content

maksakovaa/NetManager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Мне таки удалось реализовать базовый функционал кроссплатформенного многопоточного сервера. Там еще конечно есть что дорабатывать, но это уже близко к тому что я хотел добиться. Что умеет на данный момент:

  1. Просмотр текущих настроек
  2. Просмотр текущих подключенных клиентов
  3. Запуск сервера в отдельном потоке (если уже запущен то выдаст сообщение что уже запущен)
  4. Остановка потока сервера (если не запущен то выдаст сообщение что не запущен)
  5. Просмотр логов
  6. Вывод текущего состояния сервера (выключен/запущен)

Под капотом: основной интерес представляет класс menu и net. Класс menu имеет встроенную структуру server, членами которой являются экземпляр класса net и фьючерс в котором будет вызываться запуск сервера. Класс net. Тут используется структура netObj, в которой хранятся сокеты, экземпляр структуры sockaddr_in, идентификатор клиента, индивидуальный пакет для передачи данных, и фьючерс в котором будет запущен поток. Для экземпляра servObj структуры netObj в фьючерсе запускаем поток контролирующий потоки соединений. При запуске сервера и подключении клиента в вектор указателей (на netObj) cliObj помещается указатель на структуру клиента, в ней инициализируется фьючерс в котором запускается поток работы с клиентом. Также все сообщения отправляются в отдельном потоке в Logger.

update 21.04.2024:

  • Изменения в CMakeLists, теперь приложение разделено на shared library's и executable binary
  • Добавлен класс ReqAPI который будет использоваться для обработки запросов от клиента.

update 20.04.2024:

  • Исправлены названия классов
  • Добавлена небольшая задержка опроса в netManager. Изза её отсутствия система могла "вешать" поток в котором он работает.
  • Добавлена возможность изменения настроек сервера из приложения. На данный момент часть настроек не обрасла необходимыми проверками веденных данных, поэтому пока только менять можно порт и количество клиентов.
  • Реализация шаблонной функции проверки выбора в меню.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published