Android no puede recibir paquetes de multidifusión

Estoy jugando un poco con sockets multicast. Escribo un servidor que envía un mensaje a un cliente de Android. Hasta el momento, el cliente solo debe registrar el mensaje recibido. Noté que no se recibe ningún paquete de multidifusión en mi dispositivo.

Aquí está el código para el servidor (se ejecuta en la PC):

public class MulticastServer{

private int port;

private boolean running = false;

private MulticastSocket serverSocket;

private InetAddress group;

private String multicastAddress = "230.192.0.11";

public MulticastServer(int port) {
    super();
    this.port = port;
    init();
}

public MusicStreamerServer() {
    this(5500);
}

private void init() {

    try {
        group = InetAddress.getByName(multicastAddress);
        serverSocket = new MulticastSocket(port);
        serverSocket.joinGroup(group);
    } catch (IOException e) {
        e.printStackTrace();
    }

}

public void start() throws IOException {
    System.out.println("server started");

    if (running)
        return;

    running = true;

    new Thread(new Runnable() {

        @Override
        public void run() {

            byte[] buf = new byte[1024];

            DatagramPacket packet = new DatagramPacket(buf, buf.length,
                    group, port);

            String msg = "msg";


            while (running) {

                                    packet.setData(msg.getBytes(), 0, msg.length());


                try {
                    serverSocket.send(packet);
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }

        }
    }).start();

}

public void stop() throws IOException {
    running = false;
} }

Aquí está el código para el cliente de Android:

public class MainActivity extends Activity {

private MulticastSocket socket;

private InetAddress group;

private String multicastAddress = "230.192.0.11";

private int port = 5500;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    init();
}

private void init() {

    StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
            .permitAll().build();

    StrictMode.setThreadPolicy(policy);

    try {
        group = InetAddress.getByName(multicastAddress);
        socket = new MulticastSocket(port);
        socket.joinGroup(group);
        socket.setBroadcast(true);
    } catch (IOException e) {
        e.printStackTrace();
        Log.wtf("init", e.getMessage());
    }

    new Thread(new Runnable() {

        @Override
        public void run() {

            WifiManager wm = (WifiManager) getSystemService(Context.WIFI_SERVICE);
            WifiManager.MulticastLock multicastLock = wm
                    .createMulticastLock("mylock");

            multicastLock.acquire();

            byte[] buf = new byte[1024];

            while (true) {

                try {
                    socket.receive(packet);

                    Log.d("receiver","received = " + (new String(packet.getData())));

                } catch (IOException e) {
                    e.printStackTrace();
                }

            }

        }
    }).start();
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}}

He probado el código con 2 dispositivos diferentes. El Nexus4 y el Nexus7 (2013) ejecutan el último Android.

¿Alguien podría ayudarme?

Gracias