DatagramSocket receive () не получает никаких данных - PullRequest
0 голосов
/ 02 июля 2018

Я написал приложение для 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 Ответ

0 голосов
/ 03 июля 2018

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

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

...