DatagramSocket receive() не получает никаких данных

Я написал приложение для Android, которое прослушивает UDP-порт 5150 для получения закодированного аудиопотока от устройства, подключенного к тому же маршрутизатору Wi-Fi. Однако вызов метода receive() блокируется на неопределенный срок и не получает никаких данных.

int FRAME_SIZE = 480;
byte[] udpBuffer = new byte[FRAME_SIZE];
DatagramSocket socket;

socket = new DatagramSocket(5150);
datagramPacket = new DatagramPacket(udpBuffer, FRAME_SIZE);

System.out.println("Starting UDP listener");
for(;;){
        socket.receive(datagramPacket);
        System.out.println("receiving UDP data");
}

Я установил следующее разрешение

<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE"/>

В чем может быть причина, чтобы не получать данные UDP?

1 ответ

Проблема возникла из-за того, что IP-адрес, возвращенный устройством в обратном порядке. В результате IP-адрес моего устройства был неверно настроен, что заставило сервер отправлять данные в неправильное место назначения. После исправления я смог получить данные.

Спасибо всем за поддержку.

Другие вопросы по тегам