Corrig� TP Not� 2013 : serveur HTTP
3. Modification du Worker Httpd10WorkerBase.java
- Httpd10Worker.java
-
- on ouvre le fichier en lecture, et on obtient le channel permettant de la manipuler ;
- on met le buffer qui permet de lire dans le fichier et d'�crire sur le canal tcp dans l'�tat qui permet de le remplir (clear)
- on remplit le buffer � partir du fichier (read)
- on pr�pare le buffer pour �mettre son contenu sur le canal tcp (flip)
- on transmet le contenu du buffer sur le canal tcp (write)
- on ferme le channel correspondant au fichier ouvert ainsi que son FileInputStream
4. Modification du serveur Httpd10Base
- Httpd10.java
-
-
Un
ServerSocketChannel
permet � un serveur d'�tre contact� par un client. Il correspond � un port que le client doit conna�tre et auquel il doit
se connecter. Un SocketChannel
permet d'acc�der au canal tcp ouvert et d'�changer des donn�es de mani�re bidirectionnelle entre les deux cot�s de ce canal TCP.
-
L'op�ration accept peut �tre faite sur un
ServerSocketChannel
et pas sur un SocketChannel
.
-
Les op�rations read et write peuvent �tre faites sur un
SocketChannel
et pas sur un ServeurSocketChannel
.
6. Autres questions sur le serveur Httpd10 r�alis�
Une fois que vous avez test� le serveur r�alis� � la section
pr�c�dente, r�pondez aux questions suivantes :
-
Ce serveur peut-il �tre utilis� par plusieurs clients ?
Oui il peut �tre utilis� par plusieurs clients mais de mani�re s�quentielle dans le temps.
-
Il accepte la connexion, cr�e un Worker qui d�code la requ�te et r�pond en
transmettant le contenu du fichier correspondant � la requ�te. Le Worker, ferme
la connexion.
-
Le fichier contient un feuille de style et trois images. Un browser devra
r�aliser cinq connexions pour charger la page.
7. Maintien des connexions ouvertes (5 pts)
R�pondez aux questions suivantes puis r�alisez les modifications au
niveau des classes :
-
Il faut permettre que plusieurs worker soient lanc�s en m�me temps, chacun
�tant dans un Thread.
-
Il faut que la classe impl�mente l'interface
Runnable
, et que le travail soit r�alis� une m�thode appel�e run
-
Le serveur doit cr�er le worker, puis lancer le
Thread
correspondant.
Http11Worker.java
Httpd11.java