QTCP连接为QThread

时间:2018-01-23 17:07:38

标签: qt4 qthread qtcpsocket

所以这就是......

我正在使用linux触摸屏设备制作嵌入式程序。

我的程序必须通过tcp建立与服务器的连接。问题是我的设备直接在我的程序中引导,如果服务器没有监听,由于我使用的连接结构使用,所有功能都会丢失:

    while(!socket->waitForConnected(-1)){

         socket->connectToHost(serverIP, port);

         thread->sleep(1);
    }

(服务器不会一直在听,所以这是“主要”问题)

我发现的解决方案是将此连接作为一个线程,但我无法执行代码。有人可以帮忙吗?这是唯一的解决方案吗?如果是这样,有没有人知道做出这类事情的好文件?

非常感谢帮助,TY!

顺便说一下,我正在使用Qt 4.7!

1 个答案:

答案 0 :(得分:0)

只是让人们可以看到解决方案,我创建了一个插槽来建立连接:

void TCP::iniSetup()
{
    qDebug("Connecting..");
    socket->connectToHost(serverIP, port);

    if(socket->state() == QTcpSocket::ConnectedState){
         timer->stop();
    qDebug("Connected!");
    }
}

并将超时(从QTimer对象)连接到此插槽。要重新连接(如果连接丢失),我使用另一个插槽只是为了重新启动计时器。无需重新制作信号和插槽连接!!

对@eyllanesc的所有信任和赞赏,谢谢兄弟!