0

我正在使用 QUdpSocket 将参考数据写入机器人。我希望传输尽可能实时。这是我现在正在做的事情:

if (dataBuffer.count() > 0)
{
    int numWritten = udp_socket->writeDatagram(dataBuffer.left(64), t_host, t_port);
    if (numWritten > 0) { dataBuffer.remove(0, numWritten); }
}

定时器以 50Hz 触发上述代码。在这种情况下是否有必要flush在 writeDatagram 调用之后调用?

4

2 回答 2

1

不,没有必要调用flush()。该writeDatagram方法具有即时效果。确保您使用的计时器是Qt::PreciseTimer.

于 2017-03-08T21:35:17.780 回答
-1

这取决于系统。但是可以使用刷新来确保它会尽快写入。在某些系统中使用 waitForBytesWritten() 就足够了。

于 2017-03-08T05:44:31.310 回答