Доброго дня!
В отдельный поток вынес работу с сокетами и встал вопрос, как будет наиболее правильным получать пакеты.
Либо как обычно, подписавшись на событие:
connect(_socket, &QUdpSocket::readyRead, this, &UDPStream::onReadyRead);
или же в цикле потока
if (_socket->hasPendingDatagrams()) {
QByteArray data;
data.resize(_socket->pendingDatagramSize());
.........
}
Что будет, если я буду опрашивать с интервалом, к примеру, в 3мс? Имею ввиду не будет ли происходить потерь, пока очередной пакет не будет обработан? Т.е. будут ли все дошедшие UDP пакеты становится в очередь и в ней ожидать, пока не будут прочитаны? Если да, то какой размер этой очереди (я предполагаю, что этим уже сетевая карта/система занимается, но всё же)?