阻塞套接字 - waitForReadyRead()

Raj*_*war 1 c++ qt qtcpsocket

目前在我的QT代码中我有这样的事情:

QByteArray tick_stream;
clntSocket->waitForReadyRead();
tick_stream = clntSocket->read(800);
Run Code Online (Sandbox Code Playgroud)

在它所述的文件中

此功能将阻塞,直到有新数据可供读取并且已发出readyRead()信号.该函数将在msecs毫秒后超时; 默认超时为30000毫秒

有什么方法可以让waitForReadyRead在我的阻止应用程序中等到无限

dun*_*123 5

您可以使用-1参数来无限期地等待.

clntSocket->waitForReadyRead(-1);
Run Code Online (Sandbox Code Playgroud)

这是在文档中,QIODevice但不是派生的套接字类.

但实际上你应该使用Qt事件循环并将一个槽附加到readyRead信号而不是阻塞线程.