QTcpSocket :: waitForBytesWritten的行为?
我对
QTcpSocket::waitForBytesWritten()
的行为有点困惑......
直到这个功能什么时候阻止?
在将数据写入OS的内部缓冲区以通过TCP传输之前?
直到数据物理转换为TCP数据包并发送?
在传输整个数据并且远程客户端确认已收到所有数据包之前?
我查看了文档,但似乎并不十分清楚。
没有找到相关结果
已邀请:
1 个回复
舜辉
信号并返回事件循环以执行其他工作,或者只是设置适当的超时。一般情况下,远程端总是可以在某种程度上阻止你 - 也就是说,它可以拒绝ack,填满你的本地OS缓冲区,此时写入不会从Qt到OS;无论
处于何种水平,它都可以被阻止。 因此,
和
应仅用于限制数据源 - 即,如果您要进入一个紧密的循环,一次将1G数据传递到套接字,您可能最终在此过程中缓冲它内存耗尽。通过使用
信号触发额外的读/写操作,可以避免此问题。