Qt 5.9.2
QUdpSocket
наткнулся на странное поведение класса:
s->hasPendingDatagrams() возвращает true, ок, иду вызывать s->pendingDatagramSize() - а функция поначалу действительно возвращает размеры пакетов, но в какой-то момент начинает возвращать -1
это при том, что hasPendingDatagrams() ==true, bytesAvailable()>0
в такой ситуации, однако, возвращается ошибка UnknownSocketError, причём очистить ошибку можно только попыткой чтения датаграммы длиной 0 байтов
s->readDatagram(ba, 0);
---------------------
перешёл к использованию hasPendingDatagrams()+bytesAvailable() (а pendingDatagramSize не смотрю вообще),
поскольку readDatagram читает одну датаграмму, даже если указать больше её длины при чтении
но при этом иногда таки проскакивает bytesAvailable()==1. при этом датаграмма теряется при попытке чтения, насколько я понимаю. Ошибка возвращается такая:
QAbstractSocket::ConnectionRefusedError / "Connection reset by peer"
---------------------
кто знает, как баг с pendingDatagramSize победить ?