Premiers programmes avec les sockets

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

Sockets UDP

  1. Recopiez le code donné en exemple sur les sockets UDP dans le cours et complètez le pour qu'il soit exécutable (il manque notamment toute la gestion des exceptions).
  2. Modifiez vos classes pour qu'on puisse passer en paramètre le numéro de port du serveur et la machine du serveur :

    $ java ServeurUDP port_local_ecoute
    $ java ClientUDP nom_serveur port_serveur

Sockets TCP

  1. Recopiez le code donné en exemple dans le cours sur les sockets TCP et complètez le pour qu'il soit exécutable (il manque notamment toute la gestion des exceptions). On supposera que le serveur se termine une fois la communication avec le premier client terminée.
  2. Modifiez vos classes pour qu'on puisse passer en paramètre le numéro de port du serveur et la machine du serveur :

    $ java ServeurTCP port_local_ecoute
    $ java ClientTCP nom_serveur port_serveur

Transfert de fichier

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