:: Enseignements :: ESIPE :: E4INFO :: 2012-2013 :: Applications réseaux ::
![[LOGO]](http://igm.univ-mlv.fr/ens/resources/mlv.png) |
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:7777 où x 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.
© Université de Marne-la-Vallée