Как «очистить» буфер приема на Java DatagramSocket?

У меня есть программа на Java, которая постоянно отправляет данные UDP из внешней системы.

Периодически нам нужно прекращать получение данных (потому что их обрабатывает другая машина). В это время мой поток чтения сокетов переходит в спящий цикл. Когда пришло время начать прием пакетов, я снова вхожу в socket.receive (Packet) и получаю буфер, полный пакетов, которые я не должен обрабатывать . (Данные поступили в «время остановки».)

Есть ли способ очистить буфер DatagramSocket?

Если нет, то какая альтернатива лучше? Установить размер буфера на 0, когда я перехожу в состояние ожидания, и вернуть его, когда я снова начну обрабатывать пакеты обслуживания? Закрыть сокет, когда я жду, и открыть новый, когда вернусь?

5
задан Konstantin Tarashchanskiy 8 December 2011 в 23:39
поделиться