Protocole UDP

Exercice 1 - Quelle heure est-il ?

É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
   Émission du datagramme
   Attente de la réponse...
   Réponse reçue de (gaspard.univ-mlv.fr:13): Tue Dec  5 16:44:04 2000
   

Exercice 2 - Echo et limitations d'UDP

Faire la même chose que dans l'exercice précédent 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 reçus
   contenant  Mon beau message, roi des machines
   provenant de gaspard.univ-mlv.fr/193.55.63.81:7
   

Tester ce client avec des messages de tailles différentes afin de déterminer la taille maximale des données transportables dans un datagramme UDP. Qu'est-ce qui impose cette limite?

Exercice 3 - Client/serveur UDP

On désire avoir un client UDP permettant d'envoyer une chaîne de caractère à un serveur UDP. Le serveur est un serveur de mise en majuscule. Celui-ci reçoit un texte, le met en majuscule et renvoie le texte mis en majuscule.

Transformer le programme précédent en client UDP générique pour qu'il accepte en plus du nom de la machine, un port de discussion.
Programmer un serveur UDP effectuant la mise en majuscule d'un texte reçu.

Note: les serveurs UDP fonctionnent en règle général pour plusieurs clients.

Exercice 4 - Forum de discussion Multicast

En utilisant une socket de multicast UDP, é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, et qui affiche 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.