:: Enseignements :: Master :: M1 :: 2008-2009 :: Architecture et Programmation Réseau ::
[LOGO]

UDP, client/server, DatagramSocket, DatagramChannel, MulticastSocket


TD sur 2 séances. Vous trouverez içi quelques notes concernant ce td.

Exercice 1 - Client UDP

Écrire un client UDP permettant d'interroger le démon DayTime (RFC 867) qui est accessible sur le port 13 d'une machine host. On attend un fonctionnement du type :
   $ java DayTimeUDPClient gaspard
   Création de la socket locale attachée :
   à l'adresse 0.0.0.0/0.0.0.0
   au port 1030
   Emission du datagramme
   Attente de la réponse...
   Réponse reçue de (gaspard.univ-mlv.fr:13): Tue Dec 5 16:44:04 2000
   
Vous utiliserez pour cela les classes java.net.DatagramSocket et java.net.DatagramPacket. Pensez à gérer correctement l'encodage utilisé par le protocole DayTime.

Exercice 2 - Client echo

On souhaite faire la même chose que dans l'exercice précédent mais en utilisant un DatagramChannel avec le protocole Echo (RFC 862).
Écrire un client qui envoie des messages au démon Echo accessible sur le port 7 d'une machine host, et qui reçoit en retour ce même message. Par exemple :
   $ java EchoUDPClient gaspard "Mon beau message, roi des machines"
   socket locale attachée :
   à l'adresse 0.0.0.0/0.0.0.0
   au port 1044
   34 octets émis vers gaspard/193.55.63.81
   capacité de la zone de stockage : 44
   34 octets recus

   contenant : Mon beau message, roi des machines
   provenant : de gaspard.univ-mlv.fr/193.55.63.81:7
   
Vous utiliserez également des Charset pour gérer correctement l'encodage de votre message en fonction de l'encodage par défaut de votre machine.

Exercice 3 - Limitation UDP

Écrire un client Echo utilisant un DatagramSocket pour qu'il puisse envoyer des messages de tailles différentes afin de déterminer la taille maximale des données transportables dans un datagramme UDP de votre machine.
Attention: avec UDP, ce n'est pas parce qu'un paquet d'une certaine taille n'arrive pas qu'un autre d'une même taille n'arrivera pas.
Qu'est-ce qui impose cette limite ?

Exercice 4 - Client/Serveur UpperCase

Écrire un client et un serveur communiquant en UDP de sorte que le client envoie un texte avec l'encodage ISO8859-1 au serveur qui le met en majuscule et le lui retourne.

Exercice 5 - Somme

On souhaite mettre en place une calculette permettant à un client de demander le résultat de la somme de deux nombres.
Le client doit envoyer chaque opérande un par un. Le résultat est renvoyé par le serveur à reception de deux opérandes d'un meme client.

Exercice 6 - Forum de discussion Multicast

En utilisant une socket de multicast UDP (pas un Channel), écrire une petite application qui envoie sur un port donné d'un groupe de multicast correspondant à une adresse IP donnée tout ce qui est écrit sur la ligne de commande. L'application affichera sur la ligne de commande tout ce qui est reçu sur ce groupe de multicast à destination de ce port.
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.