Université Paris 7
IUP 2
Réseaux
Année 2003-2004
Utiliser le mécanisme de groupes de diffusion (multicast) de Java.
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.