没有信号/插槽的 QtcpSocket

Posted

技术标签:

【中文标题】没有信号/插槽的 QtcpSocket【英文标题】:QtcpSocket without signals/slots 【发布时间】:2012-09-08 22:23:09 【问题描述】:

是否可以在不使用 readyRead 插槽的情况下使用 QTcpSocket

我尝试使用此代码从 tcp 服务器读取数据:

QByteArray ba;

forever

sck.waitForReadyRead();
ba.append( sck.readAll() );

if (sck.bytesAvailable() == 0)
  break;

但有时我没有收到来自服务器的所有数据!?

【问题讨论】:

【参考方案1】:

是的,这是可能的。 TCP是面向流的,你不能像那样退出迭代。 QAbstractSocket 文档中有一个示例。

如您所见,您必须继续阅读,直到连接关闭(waitForReadyRead() 方法返回 false)或直到您发送一些终止序列,这取决于您。

【讨论】:

你说得对……我的错,我专注于 QTcpSocket !再一次,我必须先 RTMFM :(

以上是关于没有信号/插槽的 QtcpSocket的主要内容,如果未能解决你的问题,请参考以下文章

Qt插槽和信号:MainWindow中没有匹配的功能

Qt QProcess::finished() 信号没有这样的插槽

跟随发出的信号到其连接的插槽?

打印信号/插槽的跟踪称为

信号没有被其他类捕获

带信号/插槽的 PySide IPC