Université Paris 7
IUP 2
Réseaux
Année 2003-2004

TP 8 - Le Multicast

Objectif

Utiliser le mécanisme de groupes de diffusion (multicast) de Java.

Principe

Il est possible de créer des groupes de communication tels que tout message envoyé à ce groupe est distribué à chacun de ses membres: c'est la multidiffusion (le multicast). Ceci existe en mode non connecté (UDP). Java offre la possibilité de s'en servir grâce à la classe MulticastSocket du paquetage java.net. L'explication ci-dessous reprend simplement la page de manuel de cette classe.

Un groupe de multicast est spécifié par

Pour pouvoir en bénéficier, il faut s'y abonner par la méthode joinGroup(InetAddress).

 InetAddress group = InetAddress.getByName("228.5.6.7");
 MulticastSocket s = new MulticastSocket(6789);
 s.joinGroup(group);

Puis on envoie des datagrammes UDP standards sur le port qu'on a connecté au MulticastSocket:

byte[] msg = new String("Salut!!").getBytes();
DatagramPacket pkt = new DatagramPacket(msg, msg.length, group, 6789);
s.send(pkt);

On lit les messages envoyés sur le groupe comme on lit un datagramme normal:

 byte[] buf = new byte[1000];
 DatagramPacket recv = new DatagramPacket(buf, buf.length);
 s.receive(recv);

Si on veut quitter le groupe, on utilise la méthode leaveGroup de MulticastSocket.

 s.leaveGroup(group);

Exercice:  

Créer un programme client capable de rejoindre un groupe multicast spécifié au lancement, de diffuser des messages sur ce groupe et d'en recevoir les messages.