Recibir mensaje de difusión en Android

Primero – lo siento por mi inglés, no soy "escritor nativo".

Estoy enviando mensaje de difusión en C ++, y quiero recibirlo en el dispositivo Android. He creado este código:

System.out.println("receiveBroadcast()"); DatagramSocket socket = new DatagramSocket(3866); socket.setBroadcast(true); System.out.println("Listen on " + socket.getLocalAddress() + " from " + socket.getInetAddress() + " port " + socket.getBroadcast()); byte[] buf = new byte[512]; DatagramPacket packet = new DatagramPacket(buf, buf.length); while (true) { System.out.println("Waiting for data"); socket.receive(packet); System.out.println(packet.getAddress()); System.out.println("Data received"); } 

Funciona cuando compilarlo como estándar java aplicación de consola de SE y ejecutar en otro equipo conectado a la red. No funciona en Android y no tengo ni idea de por qué. En Android solo espera datos pero nunca lo recibe:

 03-18 15:47:05.045: I/System.out(16651): receiveBroadcast() 03-18 15:47:05.055: I/System.out(16651): Listen on /:: from null port true 03-18 15:47:05.065: I/System.out(16651): Waiting for data 

Lo que es interesante, cuando lo ejecuto como aplicación estándar de consola de Java en el sistema Windows, en lugar de "Listen on / :: from null port true" Me sale "Listen on 0.0.0.0/0.0.0.0 de null port true".

Tengo en manifiesto tales permisos:

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

¡Por favor ayuda!

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.