Qt:QTcpSocket 的默认连接超时时间

6

请问如何设置默认的连接超时时间而不使用阻塞的waitForConnected()方法?我注意到socket会在大约60秒后发出错误信号(QAbstractSocket::SocketTimeoutError),我可以将其作为超时处理,但是这个超时时间能否调整?


嗨,我认为没有其他解决方案。您可以调整waitForConnected()函数,但是如果您不想让这个函数阻塞(可能是因为GUI或其他任何原因),您应该使用线程。 - Martin
确切地说,是因为GUI阻塞的原因。我想要为套接字建立持久连接,但我不知道如何使用线程来实现它。如果我只是将waitForConnected()调用移动到线程中,它会在控制台中显示一个输出:“无法为处于不同线程的父对象创建子项”,但是没有任何显式的对象创建,只有单个waitForConnected。 - user3948829
1个回答

9
您可以使用QTimer

在开发过程中,请确保至少将stateChanged(...)error(...)信号连接到调试插槽中,该插槽只是打印参数。这样,您将了解到发生了您不希望发生的事情。


是的,现在我使用 QObject 的 startTimer() 实现了它。所以我现在可以接受这个答案。 - user3948829

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接