[t]40ex
UniversitéPierre & Marie Curie
U.F.R d'infomatique
[t]45ex
Maîtrise -- 2000-01
Programmation Objet et Distribution



Tavaux dirigés n° 9




Exercice I L'inévitable "hello"

On veut écrire un serveur ``générique'' pour l'instancier sur le service hellod (voir TD n° 6). On se donne pour cela les deux classes suivantes :

abstract class ServiceObject 
 { abstract void fun(Socket sock); }
class Service extends Thread {
    Socket sock;
    ServiceObject sobj;
    Service(Socket sock0, ServiceObject sobj0) 
     { sock = sock0; sobj = sobj0; }
    public void run() { sobj.fun(sock); }
}

Question (I.1) Écrire une classe Serveur, sous-classe de Thread possédant trois champs : La socket de connexion est crée par le constructeur qui démarre également le serveur. La boucle d'attente de connexions et la création du processus de service (instance de Service) sont réalisés par la méthode run.


Question (I.2) Écrire une classe HelloService, sous-classe de ServiceObject dont la méthode fun implante la fonction de service hello.


Question (I.3) Écrire la classe principale Hellod dont la méthode main lance le serveur hello. Le numéro de port est lu sur la ligne de commande.


Question (I.4) Écrire la classe principale du client Hello dont la fonction main implante le client hello. L'adresse du serveur et le numéro de port du service sont lus sur la ligne de commande.




Exercice II Un lecteur d'URL

Écrire une classe (réduite àla méthode main) permettant de lire les dix premières lignes de la page d'entête de http://www.lip6.fr. On utilisera les classes URL, URLConnection et LineNumberReader.




Exercice III Un CGI et son client


Question (III.1) Écrire un programme qui lit une ligne sur l'entree standard, teste qu'elle commence par la chaîne "string=" et si c'est le cas, récupère le suffixe (ie sous-chaîne aprés le '=') et écrit sur la sortie standard la chaîne "Content-type: text/plain\n\n" suivie du miroir du suffixe.


Question (III.2) Écrire un programme qui prend en argument (sur la ligne de commande) une chaîne, ouvre une connexion avec une URL, expédie àcelle-ci une chaîne formée du préfixe "string=" et de l'argument lu, lit la réponse et l'affiche.




This document was translated from LATEX by HEVEA.