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

UDP non-bloquant, Multicast


Exercice 1 - Serveur Echo NIO

En partant du fichier ServerEchoNIOTemplate.java, écrivez un serveur Echo ServerEchoNIO qui prend en argument son port d'écoute. Si votre serveur écoute sur le port 7777, vous pouvez le tester avec nc -u localhost 7777.

Exercice 2 - Serveur Echo multi-port NIO

En partant du fichier ServerEchoNIOTemplate.java, écrivez un serveur Echo ServerEchoNIOMultiPort qui prend en argument une plage de ports. Si vous lancez votre serveur avec:
java upem.net.udp.ServerEchoNIOMultiPort 7000 7100
votre serveur se comportera comme un serveur Echo sur chacun des ports de la plage 7000 .. 7100.

Vous pouvez tester votre serveur en lancant le client ClienEchoMulti.jar comme suit:
java -jar ClientEchoMultiPort localhost 7000 7100
Le client envoie 1000 paquets sur la plage de ports entre 7000 et 7100. Il vérifie que tous les paquets réponses sont bien reçus. Si tout se passe bien, vous devez voir:
Test passed!

Exercice 3 - Chat 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.

Le code ci-après vous montre comment configurer une DatagramChannel pour la réception mutlicast. Vous voyez que la configuration demande de préciser l'interface réseau sur laquelle la communication aura lieu. Si vous êtes sur votre portable, il faut utiliser loopback (i.e. lo0) et vous ne pourrez parler qu'aux clients lancés sur votre machine.

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.