La particularité des programmes que l'on va implémenter est qu'ils
contiennent deux exécutables qui ont chacun leur
méthode main()
: un client et un serveur.
Si le développement du code Java peut se faire dans Eclipse, il n'est pas très confortable de lancer plusieurs programmes Java en même temps sous Eclipse. Vous lancerez donc vos programmes en ligne de commande.
Par exemple, si vous avez un projet Java nommé "TPSocket" se
trouvant dans un workspace "projets-RIP-IHM" à la racine de votre
répertoire partagé sous Windows, les classes Java compilées se
trouvent dans le repértoire :
H:\projets-RIP-IHM\TPSocket\bin
Placez vous dans ce répertoire et exécutez, par exemple, la commande
suivante pour lancer la classe "Serveur" du
fichier Serveur.class
(le "$" est l'invite de commande qui pourra être
un ">" sous Windows, il ne fait pas partie de la commande à
entrer) :
$ java Serveur
$ java ServeurUDP port_local_ecoute
$ java ClientUDP nom_serveur port_serveur
$ java ServeurTCP port_local_ecoute
$ java ClientTCP nom_serveur port_serveur
Implémentez un transfert de fichier entre le client (émetteur) et le serveur (récepteur). Faites une première version avec des sockets UDP et une seconde avec des sockets TCP. Prenez soin à la gestion des erreurs sur les communications.
Eric Cariou, dernière modification : 23/01/24