请问如何设置默认的连接超时时间而不使用阻塞的waitForConnected()方法?我注意到socket会在大约60秒后发出错误信号(QAbstractSocket::SocketTimeoutError),我可以将其作为超时处理,但是这个超时时间能否调整?
请问如何设置默认的连接超时时间而不使用阻塞的waitForConnected()方法?我注意到socket会在大约60秒后发出错误信号(QAbstractSocket::SocketTimeoutError),我可以将其作为超时处理,但是这个超时时间能否调整?
QTimer
:
connectToHost
之后启动它。QAbstractSocket :: HostLookupState
变为 QAbstractSocket :: ConnectingState
时,您可能希望重置计时器,如果您想更细致地控制超时的发生时间,则可以使用不同的超时时间。 disconnectFromHost()
并在收到断开信号时执行重试等操作。在开发过程中,请确保至少将stateChanged(...)
和error(...)
信号连接到调试插槽中,该插槽只是打印参数。这样,您将了解到发生了您不希望发生的事情。
waitForConnected()
函数,但是如果您不想让这个函数阻塞(可能是因为GUI或其他任何原因),您应该使用线程。 - Martin