Мы пытаемся отправить UDP-датаграммы в Android 7.0 по Wi-Fi на сервер.Размер датаграммы составляет 23 байта, а частота составляет около 15 миллисекунд.
У нас есть очередь, в которую мы помещаем ByteArrays.Другой Sending-Thread извлекает эти массивы из потоковой безопасной очереди и отправляет их в Datgrams через Datagramsocket на сервер.Метод socket.send () вызывается каждые 10-18 мс.
Wireshark на стороне сервера получает большинство пакетов в хорошем регулярном стабильном интервале примерно 15 мс, но иногда (в основном каждые 150-300 пакетов) наблюдается задержка 1-3 цикла отправки и затем задержкапакеты падают "пачкой" после паузы 30-60 мс.
Задержки увеличиваются и появляются значительно чаще, если во время выполнения мы пытаемся создать нагрузку на телефон Android с помощью интенсивных по сети задач (когда мы запускаем приложение WiFi-Analyzer).
Увеличение ThreadPriority Sender-Thread, похоже, не влияет на проблему.
Если кто-нибудь может помочь мне с некоторыми советами о том, как получить больший контроль над сетевым интерфейсом.процесс отправки, чтобы уменьшить количество посылок и получить более стабильный регулярный интервал отправки, я и мои друзья были бы очень, очень благодарны.