Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Ввод/Вывод, Сеть. Межпроцессное взаимодействие _ QTcpSocket и runtime error

Автор: AndreyUl 9.4.2017, 0:19

Клиент-серверное приложение написано на QTcpSocket. Приложение на qt выступает в качестве сервера, клиент - python.
Общаются по 49121 порту, все работает нормально, но стоит во время общения клиент-серверного приложения подключить монитор по VDI, выключить монитор, или пошевелить мышкой, когда монитор заснул, сразу вылетает ошибка runtime error со стороны qt.

Я, честно сказать, совершенно не понимаю, какая взаимосвязь между подключением монитора по VDI, другими действиями и ошибкой со стороны qt.
Может кто разъяснит?

void MainWindow::ser_start()
{
    tcpServer = new QTcpServer(this);
    connect(tcpServer, SIGNAL(newConnection()), this, SLOT(newuser()));
    if (!tcpServer->listen(QHostAddress::Any, 49121) && server_status==0) {
        QMessageBox msgBox;
        msgBox.setText("Ошибка запуска сервера");
        msgBox.exec();
    } else {
        server_status=1;
    }
}

void MainWindow::newuser()
{
    if(server_status==1){
        ui->textBrowser->append("Оцениваю объем...");

        QTcpSocket* clientSocket=tcpServer->nextPendingConnection();
        connect(clientSocket,SIGNAL(readyRead()),this, SLOT(slotReadClient()));

        QTextStream os(clientSocket);
        os.setAutoDetectUnicode(true);

Автор: ViGOur 9.4.2017, 0:58

И правда, никакой взаимосвязи не должно быть. По крайней мере с этим кодом.

Как вариант, могу предложить попробовать запустить приложение в режиме отладки (в Qt Creator или в той IDE в которой разрабатывает приложение) и совершить все те действия, которые приводят к вылету приложения. После чего посмотреть в IDE где произошло исключение. От того момента и плясать...

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)