阻塞套接字 - waitForReadyRead()

时间:2013-08-12 07:59:11

标签: c++ qt qtcpsocket

目前我的QT代码中有这样的内容:

QByteArray tick_stream;
clntSocket->waitForReadyRead();
tick_stream = clntSocket->read(800);

在文件中说明

  

此功能将阻止,直到有新数据可供读取和使用   readyRead()信号已经发出。该功能将在超时后超时   msecs毫秒;默认超时为30000毫秒

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

1 个答案:

答案 0 :(得分:5)

您可以使用-1作为参数进行无限期等待。

clntSocket->waitForReadyRead(-1);

这是QIODevice的文档,但不是派生的套接字类。

但是你真的应该使用Qt事件循环并将一个插槽附加到readyRead信号而不是阻塞线程。