QTcpSocket每~0.5s才读取一次数据,即使是非常小的数据包,任何方法都可以加快速度

QTcpSocket only reading data every ~0.5s, even with really small packets, any way to speed it up?

本文关键字:非常 即使是 数据包 方法 速度 都可以 任何 数据 5s 读取 一次      更新时间:2023-10-16

我有一个客户端/服务器设置与QTcpSocket和QTcpServer,这是一个实时的事情,所以它需要尽可能快的理想情况下,但是数据包只发送和接收每~0.5秒,即使他们真的很小(很少超过几个字节)。此外,没有数据包丢失是非常重要的,所以我不能使用UDP。我看到另一个线程,有人说在服务器端为每个客户端设置QAbstractSocket::LowDelayOption为1,但我尝试了一下,没有什么不同。有什么办法能让它快一点吗?

TCP套接字试图在每个数据报中容纳尽可能多的数据,因此0.5s可能是操作系统认为它已经等待了足够的时间,现在没有更多的数据要发送,并决定将套接字发送缓冲区刷新到网络的时间。

您可以尝试使用flush()强制将缓存的数据推送到网络

相关文章: