:: Enseignements :: ESIPE :: E4INFO :: 2012-2013 :: Applications réseaux ::
[LOGO]

Multicast


Exercice 1 - Forum de discussion Multicast

Écrire une application qui envoie sur un port donné d'un groupe de multicast correspondant à une adresse IP donnée, tout ce qui est écrit sur l'entrée standard. L'application affichera sur la sortie standard tout ce qui est reçu sur ce groupe de multicast à destination de ce port (il vous faut donc 2 threads). On considérera que les messages textuels sont transmis en UTF-8 et que leur représentation ne peut dépasser 512 octets.

En utilisant tous ce même numéro de port et la même adresse IP, vous pouvez obtenir une version basique d'un forum de discussion.

Attention: dans le cadre de l'utilisation du multicast dans les salles de TP de l'université, il ne faut pas utiliser n'importe quelle adresse de multicast (certaines sont utilisées pour des annonces ou du routage). Vous pouvez regarder pour plus de détail l'URL http://www.iana.org/assignments/multicast-addresses/multicast-addresses.xml#multicast-addresses-13. Limitez vous à l'utilisation des adresses dans la plage 239.252.0.0 - 239.255.255.255. Par ailleurs, ne changez pas le TTL qui doit être à 1 par défaut.

Par exemple, pour éviter des interférences entre les groupes, choisissez 239.252.0.x:7777x est le numéro de votre salle.

Lorsque plusieurs applications tournent sur la même machine, comment savoir laquelle a envoyé un message? Mettez en œuvre une solution qui réponde à cette question.

Que doit-on faire lorsque l'utilisateur de votre application ferme le flot de saisie des entrées (en tapant Control-D pour fermer System.in par exemple)? Mettez en œuvre une solution qui réponde à cette question.

Comment faire pour que la réception d'un paquet qui encode la chaîne de caractères "BYE!" provoque la fermeture "propre" de la socket, des threads et de l'application.