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
- Compiler puis exécuter ces programmes, depuis le même puis
depuis deux hôtes différents.
- Capturer une session à l'aide de wireshark.
- Modifier le code afin de mettre en correspondance les appels de
fonction et le trafic réseau.
- Que passe-t-il si deux clients se connectent en même
temps?
Programmation
- Quelles sont les solutions permettant de gérer plusieurs
connexions simultanées?
- Modifier le code du serveur pour qu'il accepte plusieurs
connexions simultanées.
- 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.