请告知如何在不使用阻塞waitForConnected()方法的情况下设置默认连接超时?我注意到套接字在大约60秒后发出错误信号(QAbstractSocket :: SocketTimeoutError),我可以将其作为超时处理,但可以调整此超时吗?
答案 0 :(得分:6)
您可以使用QTimer
:
connectToHost
后启动它。QAbstractSocket::HostLookupState
to QAbstractSocket::ConnectingState
更改时重置计时器(可能具有不同的超时)。disconnectFromHost()
并在执行断开连接信号时执行重试等操作。开发时,请确保至少将stateChanged(...)
和error(...)
信号连接到调试插槽,这些插槽只打印参数。通过这种方式,您可以看到某些事情以您没想到的方式发生。