Dispositivo Android não está recebendo pacote multicast

Estou desenvolvendo um aplicativo de bate-papo onde os clientes Android trocarão seus IPs usando multicast (UDP).

Cada dispositivo enviará seu ip para vários clientes (todos os dispositivos que executam este aplicativo) em um thread separado. Haverá outro segmento receptor que escutará esses pacotes multicast. Aqui está o meu código.

// Código de multicast.

DatagramSocket socket = new DatagramSocket(9898);
            byte buff[] = ip.getBytes();
            DatagramPacket packet = new DatagramPacket(buff, buff.length, InetAddress.getByName("224.0.0.1"),9999);
            socket.send(packet);
            socket.close();

// Código do destinatário

MulticastSocket socket = new MulticastSocket(9999);
        InetAddress group = InetAddress.getByName("224.0.0.1");
        socket.joinGroup(group);

        DatagramPacket packet;

            byte[] buf = new byte[256];
            byte  b = 'x'; //just a separator for time being
            Arrays.fill(buf,b);
            packet = new DatagramPacket(buf, buf.length);
            String received= "";
            while(received!=null)
            {
                socket.receive(packet);
                received = new String(packet.getData());
                received = received.substring(0,received.indexOf('x'));
                this.setIp(received);
                System.out.println("Address: " + received);
            }

        socket.leaveGroup(group);
        socket.close();

O problema é que todo dispositivo imprime seu próprio endereço. Parece que ele nunca escuta outros pacotes multicast (quero dizer, ele deve imprimir outros ip's também). Eu também recebo um log abaixo, não tenho certeza se isso está relacionado.

11-04 23:56:17.985: I/OSNetworkSystem(603): mcastAddDropMembership interfaceIndex=0

Qualquer ajuda será apreciada.

questionAnswers(2)

yourAnswerToTheQuestion