public InetAddress getInetAddress()
public InetAddress getLocalAddress()
public int getPort()
public int getLocalPort()
public InputStream getInputStream()
public OutputStream getOutputStream()
public synchronized void close()
public String toString()
4. Travail à faire
1) Écrire un programme qui rendra le service suivant :
•Afficher un message de bienvenue ;
•demander une phrase ;
•convertir cette phrase en majuscule (méthode toUpperCase() de la classe String ) ;
•recommencer si cette cette phrase est différente de « bye ».
On testera ce programme par telnet. Telnet permet de se connecter à distance sur une autre machine. Mais en fait, c'est
un programme qui ne fait qu'envoyer sur le réseau ce qui est frappé au clavier et affiche à l'écran ce qu'il reçoit. Tout
le travail d'interprétation des commandes est fait à distance sur le serveur. Par défaut telnet se connecte au port 23.
Pour se connecter à un autre port : telnet 192.168.29.X no_port
2) Écrire maintenant un programme ressemblant à Telnet. Ce programme sera lancé sur le PC. Pour interroger le
clavier on construira un BufferedReader à partir du flux Sytem.in.
3) Essayez de vous connecter aux programmes de vos camarades.
4) Les programmes précédents ont un défaut. Ils ne permettent pas à plusieurs clients de se connecter. Reprendre le
programme serveur de majuscule et le rendre « multi-client ».
2. Serveur Web
Un serveur web est une application dont le service de base est de distribuer des fichiers écrits en HTML. On se
propose d'écrire un programme affichant des relevés de températures.
Lorsqu'un utilisateur tape ceci dans la barre d'URL de son navigateur :
http://machine.nomDeDomaine:1999/repertoire/fichier.html
Le navigateur essaye de se connecter à la machine « machine.nomDedomaine » et à un programme écoutant le port
1999. Ensuite, il envoie une série de chaînes de caractères dont la première est :
"GET /repertoire/fichier.html HTTP/1.1\n\n"
Le serveur renvoie alors une entête HTTP qui est une chaîne de caractères qui précise entre autre la version du
protocole HTTP, un code d’erreur (200 : pas d’erreur) et le type de document transporté. Par exemple :
"HTTP/1.1 200 OK \n content-type: text/html \n\n"
Ensuite, le serveur envoie le fichier d'un seul bloc, puis ferme la connexion.
Si le fichier est absent, il renvoie la chaîne suivante à la place :
"http/1.1 404 ERROR\n\n" et fermer la connexion.
Le port par défaut des serveurs web est 80 et non pas 1999.
Travail à faire
1) Écrire un programme qui écoute le port 80 et affiche tout ce qu'il reçoit à l'écran. Connectez-vous à ce programme
avec un navigateur web.
2) Écrire un programme qui renvoie une page web statique, quelque soit la requette du navigateur. Attention à bien
transmettre l'entête HTTP avant le code HTML.
3) Écrire un programme qui décortique la requête du navigateur et renvoie une page web stockée sur le disque dur.
4) Écrire un programme qui lorsqu'il est interrogé par un navigateur donnera une page HTML contenant les 10
derniers relevés de température. Les températures seront prises avec un intervalle de 10s. Vous ferez un affichage
graphique en vous inspirant du code HTML donné en annexe. On prendra soin de synchroniser les méthodes
d'accès aux 10 derniers relevés afin de gérer l'accès concurrent.
5) Écrire maintenant un serveur web proposant soit de remettre à zéro la base de données après une authentification
sur une page, soit de visualiser les 10 derniers relevés sur une autre page (ou dans un cadre pour les plus en
avance).
PhL - 20/03/2007 - Page 3 / 5
D:\philippe\doc\ensi\info\TPTini\TP3A_4_TINI.sxw
3A Electronique
TP réseaux et sytèmes embarqués