#include "../Inc/VrTcpServer.h" #include #include #include int main(int argc, char *argv[]) { QCoreApplication app(argc, argv); VrTcpServer server; // 连接信号槽 QObject::connect(&server, &IVrTcpServer::serverStarted, []() { qDebug() << "Server started!"; }); QObject::connect(&server, &IVrTcpServer::serverStopped, []() { qDebug() << "Server stopped!"; }); QObject::connect(&server, &IVrTcpServer::serverError, [](const QString &error) { qDebug() << "Server error:" << error; }); QObject::connect(&server, &IVrTcpServer::clientConnected, [&server](const QString &clientId) { qDebug() << "Client connected:" << clientId; // 发送欢迎消息给新连接的客户端 QByteArray welcomeMessage = "Welcome to the server!"; server.sendDataToClient(clientId, welcomeMessage); }); QObject::connect(&server, &IVrTcpServer::clientDisconnected, [](const QString &clientId) { qDebug() << "Client disconnected:" << clientId; }); QObject::connect(&server, &IVrTcpServer::dataReceived, [&server](const QString &clientId, const QByteArray &data) { qDebug() << "Received data from" << clientId << ":" << data.toHex(); // 将收到的数据广播给所有客户端 QByteArray message = "Broadcast from " + clientId.toUtf8() + ": " + data; server.broadcastData(message); }); // 启动服务器 if (!server.startServer(12345)) { qDebug() << "Failed to start server"; return -1; } qDebug() << "Server listening on port 12345"; // 10秒后停止服务器并退出 QTimer::singleShot(10000, [&server, &app]() { server.stopServer(); app.quit(); }); return app.exec(); }