Le but de ce TP est de se familiariser avec la programmtion réseau via l'API socket.

Il vous est demandé de faire un compte-rendu de ce TP à rendre la semaine prochaine.

Observation

  1. Compiler puis exécuter ces programmes, depuis le même puis depuis deux hôtes différents.
  2. Capturer une session à l'aide de wireshark.
  3. Modifier le code afin de mettre en correspondance les appels de fonction et le trafic réseau.
  4. Que passe-t-il si deux clients se connectent en même temps?

Programmation

  1. Quelles sont les solutions permettant de gérer plusieurs connexions simultanées?
  2. Modifier le code du serveur pour qu'il accepte plusieurs connexions simultanées.
  3. Ecrire un client en Java

Un Proxy Echo

Un proxy (ou mandataire) est un relais que l'on peut utiliser entre un client et un serveur (pour passer un pare-feu par exemple).

On ajoute la possibilité d'utiliser un proxy avec comme convention que la première ligne envoyée doit être dans ce cas

Host: hote:port
Modifier votre client pour qu'il puisse utiliser un proxy (avec la syntaxe echoclient [-p proxy[:pport]] hote port ).

Ecrire le code de votre proxy.

Protocole Echo v2

En version 2, le protocole est modifié de la façon suivante. Le serveur attend désormais de recevoir une ligne vide pour envoyer sa réponse. Modifier le code de votre client, de votre serveur puis de votre proxy pour qu'ils fonctionnent en Echo v2.