/
seneka.y
/
ClientServer
Обзор
Документация
Войти
/
seneka.y
/
ClientServer
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
server/server.h
53 строки
2 KB
Julia Sinika
Initial commit
09 ноя 2025, 22:05
09 ноя 2025, 22:05
bfef146
Код
Авторство
О чём код?
#ifndef SERVER_H #define SERVER_H #include <QObject> #include <QTcpServer> #include <QThread> #include <QList> /** * @class Server * @brief Многопоточный TCP сервер для обработки клиентских соединений * * Каждый клиент обслуживается в отдельном потоке через ClientWorker. * Сервер работает неблокирующе и может обрабатывать множество клиентов одновременно. */ class Server : public QObject { Q_OBJECT public: /** * @brief Конструктор сервера * @param parent Родительский объект для управления памятью */ explicit Server(QObject* parent = nullptr); /** * @brief Деструктор, корректно завершает все рабочие потоки */ ~Server(); /** * @brief Запускает сервер и начинает слушать входящие соединения * @param port TCP порт для прослушивания (по умолчанию 12345) * @return true если сервер успешно запущен, false в случае ошибки */ bool start(quint16 port = 12345); private slots: /** * @brief Обрабатывает новые входящие соединения от клиентов * * Для каждого клиента: * - Создает новый ClientWorker * - Запускает его в отдельном потоке * - Инициализирует обработку запросов */ void onNewConnection(); private: QTcpServer* m_tcpServer; ///< TCP сервер для приема соединений QList<QThread*> m_workerThreads; ///< Список активных рабочих потоков }; #endif // SERVER_H