Я разрабатываю приложение для Android Qt, которое отправляет аудиопакеты UDP каждые 10 мс. В некоторых устройствах, таких как Google Pixel 2, он работает нормально, и данные поступают на сервер вовремя. Однако в устройствах Samsung, таких как S8 и S9, отправка пакетов задерживается каждые несколько секунд. Изучая эту проблему, я провел этот эксперимент: непосредственно перед отправкой нового пакета я запрашиваю размер буфера отправки сокета
...
int qsizeSnd = 0, qsizeRcv = 0;
ioctl( _sd, TIOCOUTQ, &qsizeSnd );
ioctl( _sd, SIOCINQ, &qsizeRcv );
qDebug() << "[SOCKET] SEND BUFFER SIZE: " << qsizeSnd << " RCV SIZE: " << qsizeRcv << ")";
В то время как Pixel 2 всегда показывает размер очереди 0 (это означает, что все было отправлено), устройства Samsung очереди, в некоторых моментах до 18 КБ.
Кто-нибудь знает, что может происходить в Samsung и как я могу ускорить отправку через сокет?
Заранее спасибо
Редактировать 1: Это происходит только с WiFi. Используя 4G, он сообщает «Размер буфера отправки: 0» (то же самое, что Pixel 2, который отлично работает)