Я использую QUdpSocket для записи справочных данных роботу.
Я надеюсь, что передача может быть в режиме реального времени, насколько это возможно.
Вот что я делаю сейчас:
if (dataBuffer.count() > 0)
{
int numWritten = udp_socket->writeDatagram(dataBuffer.left(64), t_host, t_port);
if (numWritten > 0) { dataBuffer.remove(0, numWritten); }
}
Таймер запускает вышеуказанный код на частоте 50 Гц.
Нужно ли звонить flush
в этом случае после вызова writeDatagram?
Нет, звонить не надо flush()
, writeDatagram
Метод имеет мгновенный эффект. Убедитесь, что таймер, который вы используете Qt::PreciseTimer
,
Это зависит от системы. Но можно использовать flush, чтобы убедиться, что он напишет как можно скорее. В некоторых системах достаточно использовать waitForBytesWritten ().