Programmation des réseaux avec Java

Le protocole UDP - Datagrammes et sockets UDP en Java


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 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 taille 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

Écrire un client et un serveur communiquant en UDP de sorte que le client envoie un texte au serveur qui le met en majuscule et le lui retourne.

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.


Etienne.Duris[at]univ-mlv.fr - © Université de Marne-La-Vallée - Décembre 2003