gpt4 book ai didi

qt - 网络过载时 QTcpSocket 的行为是什么?

转载 作者:行者123 更新时间:2023-12-04 19:47:40 34 4
gpt4 key购买 nike

我在发送大量数据的单独线程中有一个 QTcpSocket。其中一些应用程序分布在网络上。

如何检测我的网络是否过载并且我的套接字无法再发送任何内容? QTcpSocket 会缓冲所有数据吗,我怎样才能看到排队等待发送的缓冲数据的大小?这会等于 bytesToWrite() 吗?是否有最大 bytesToWrite()?

如果 QTcpSocket 开始丢弃数据,它将是哪些数据:缓冲区队列中最早的数据,缓冲区队列中的最新数据,...?

最佳答案

显然不是,我只是检查了 Qt 4.5.3 的代码。调用 write() 时,所有数据都放在 QRingBuffer(类不是 Qt API 的一部分)中。 QAbstractData::writeData() 放入数据,QAbstractData::flush() 取出数据。没有发现限制此缓冲区大小的检查。
QAbstractSocket::write() 返回的大小始终是您的数据大小或出现错误时的 -1。

关于qt - 网络过载时 QTcpSocket 的行为是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3778049/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com