Russian Qt Forum

Qt => Вопросы новичков => Тема начата: Alf от Июль 24, 2013, 15:11



Название: QUdpSocket. Как просто очистить буфер с датаграммами ?
Отправлено: Alf от Июль 24, 2013, 15:11
Как очистить буфер с датаграммами для QUdpSocket ? Без переподключения.

Ситуация такова. Пришла первая датаграмма, я не хочу её читать, а просто хочу очистить содержимое буфера сокета и ждать следующую.
Если я ничего не делаю с первой пришедшей датаграммой, то не приходит сигнал readyRead от сокета при поступлении последующих датаграмм.

Конечно, можно прочитать первую датаграмму и просто никак её не обрабатывать, но зачем лишние действия, если мне нужно просто обнулить буфер ?

QAbstractSocket::abort() не подходит, выполняется отключение сокета.
То, что мне нужно в терминологии мануала - discarding any pending data.


Название: Re: QUdpSocket. Как просто очистить буфер с датаграммами ?
Отправлено: mutineer от Июль 24, 2013, 15:47
Цитировать
QUdpSocket::readDatagram( char * data, qint64 maxSize, QHostAddress * address = 0, quint16 * port = 0 )
If maxSize is 0, the datagram will be discarded.

Такое подойдет?


Название: Re: QUdpSocket. Как просто очистить буфер с датаграммами ?
Отправлено: Alf от Июль 24, 2013, 16:20
Да, именно это и нужно ! Спасибо !