c++ - 阻塞套接字 - waitForReadyRead()

标签 c++ qt qtcpsocket

目前在我的 QT 代码中我有这样的东西:

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

文档中说

This function blocks until new data is available for reading and the readyRead() signal has been emitted. The function will timeout after msecs milliseconds; the default timeout is 30000 milliseconds

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

最佳答案

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

clntSocket->waitForReadyRead(-1);

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

实际上,您应该使用 Qt 事件循环并将槽附加到 readyRead 信号,而不是阻塞线程。

关于c++ - 阻塞套接字 - waitForReadyRead(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18182018/

相关文章:

c++ - 如何获取INT变量到QProcess写命令?

c++ - QT 不清楚的移位运算符行为

c++ - 使用 QTcpSocket 时出错

c++ - 为什么我能够创建一个仅在运行时知道大小的数组?

c++ - Qt QTextEdit 只加载一半的文本文件

c++ - 获取远程主机IP地址QTcpServer

c++ - 无法让 hudson 解析 JUnit 测试输出 XML

c++ - 在几个顺序数组元素中输入相同的值

c++ - 缩短嵌套的命名空间名称