Android appareil ne reçoit pas de paquet de multidiffusion

Je développe une application de chat où Android clients vont échanger leurs adresses IP à l'aide de la multidiffusion UDP ().

Chaque appareil enverra son adresse ip pour plusieurs clients(tous les périphériques de l'exécution de cette application) dans un Thread séparé. Il y aura un autre récepteur fil qui sera à l'écoute de ces paquets de multidiffusion. Voici mon code.

//Multidiffusion code.

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();

//Code récepteur

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();

Le problème est que chaque appareil imprime sa propre adresse. Il semble qu'il n'écoute jamais les autres packages de multidiffusion(je veux dire qu'il doit imprimer les autres adresses ip). Je reçois aussi un journal ci-dessous, vous ne savez pas si c'est lié.

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

Toute aide sera appréciée.

OriginalL'auteur Shashank Kadne | 2012-11-04