Исключение при получении: java.net.SocketException: нет такого устройства. в многоадресной рассылке андроида

Я пытаюсь подключиться к группе многоадресной рассылки и отправлять пакеты udp с сервера клиенту.

я написал правильные разрешения в манифесте

код сервера:

private DatagramSocket datagramSocket;
datagramSocket = new DatagramSocket();
InetAddress IPAddress;
IPAddress = InetAddress.getByName("230.0.0.1");
DatagramPacket sendPacket;
sendPacket = new DatagramPacket(data, data.length, IPAddress, port);
datagramSocket.send(sendPacket);

код клиента:

private MulticastSocket soketmulNHC;
soketmulNHC = new MulticastSocket(8900);
soketmulNHC = new MulticastSocket(8900);
WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
MulticastLock multicastLock = wifi.createMulticastLock("multicastLock");
multicastLock.acquire();
byte[] buffer = new byte[Data.MAX_PACKET_SIZE];             
InetAddress group = InetAddress.getByName("230.0.0.1");                     
soketmulNHC.joinGroup(group);
DatagramPacket receivePacket = new DatagramPacket(buffer,buffer.length,group,8900);                             
soketmulNHC.receive(receivePacket);

и я получил это исключение:

Exception in recieving
java.net.SocketException: No such device
at org.apache.harmony.luni.platform.OSNetworkSystem.setSocketOption(Native Method)
at org.apache.harmony.luni.net.PlainDatagramSocketImpl.setOption(PlainDatagramSocketImpl.java:198)
at org.apache.harmony.luni.net.PlainDatagramSocketImpl.join(PlainDatagramSocketImpl.java:137)
at java.net.MulticastSocket.joinGroup(MulticastSocket.java:190)

я также попытался добавить интерфейсную часть по этой ссылке Multicast - нет такого устройства, и тогда я получил :

SocketException in sending: java.net.SocketException: Network is unreachable

может есть проблема с использованием S2 galaxy для мультикастинга? мне нужна твоя помощь, спасибо.


person Lior Yaron    schedule 27.12.2014    source источник


Ответы (1)


Для большинства устройств (если они имеют более одного сетевого устройства) необходимо явно выбрать, какое сетевое устройство следует использовать для присоединения к группе многоадресной рассылки.

person Sebastian Dröge    schedule 05.02.2015