/
Cneon90
/
xServer
Обзор
Документация
Войти
/
Cneon90
/
xServer
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
main.cpp
59 строк
2 KB
Кирилл
device_type
24 фев 2026, 12:37
24 фев 2026, 12:37
fac1634
Код
Авторство
О чём код?
#include <QCoreApplication> #include <QDebug> #include <QThread> #include "Server/tvz_diagnostic_tool_server.h" #include "Console/consolesetup.h" #include "main.h" #include "Console/console_command_handler.h" int main(int argc, char *argv[]) { ConsoleSetup::init(); QCoreApplication app(argc, argv); std::cout << "Starting echo TCP server..." << std::endl; std::cout.flush(); // Создаем поток для сервера QThread serverThread; TVZ_Diagnostic_Tool_Server server; // Перемещаем сервер в отдельный поток server.moveToThread(&serverThread); // Запускаем сервер после старта потока QObject::connect(&serverThread, &QThread::started, [&server]() { if (!server.listen(QHostAddress::Any, AppSettings::tvzPort)) { std::cerr << "Failed to start server: " << server.errorString().toStdString() << std::endl; QCoreApplication::exit(1); } else { std::cout << "Server running on port " << AppSettings::tvzPort << std::endl; std::cout.flush(); } }); // Останавливаем сервер перед завершением потока QObject::connect(&serverThread, &QThread::finished, &server, &TVZ_Diagnostic_Tool_Server::close); // Запускаем поток serverThread.start(); // Создаем и запускаем обработчик команд ConsoleCommandHandler commandHandler(server); commandHandler.start(); std::cout << "Echo mode: sends back received bytes" << std::endl; std::cout << "Press Ctrl+C to exit" << std::endl; std::cout.flush(); int result = app.exec(); // Корректное завершение serverThread.quit(); serverThread.wait(); return result; } #include "main.moc"