Travaux pratiques N° 1 : Rappel sur les I/O en java
Exercice 1 Rappels du cours
1. Donner deux exemples d’applications C/S où le client a besoin de plus de ressources que le serveur. Quel terme peut désigner ce genre de clients ? 2. Donner la définition et deux exemples de clients légers. 3. Rappeler la notion d’état d’un serveur. Donner deux exemples de serveurs avec et sans état. 4. Quel est l’avantage du multithreading pour un serveur ? 5. Donner une définition et préciser l’utilité des RFC.
Exercice 2 Copie de fichier en java
1. Donner le code java d’un programme qui copie un fichier en un autre. Les noms des deux fichiers sont sasis en ligne de commande. Vous pouvez utiliser les méthodes read et write des classes FileInputStream et FileOutputStream. Les exceptions doivent être correctement gérées et des messages d’erreurs adéquats doivent être affichés. Exemple de commande : java Copie source.txt destination.txt 2. Mesurer le temps de la copie. 3. (Bonus +2) accélérer la copie en utilisant d’autres classes java.
Exercice 3 Communication basée sur le système de fichier
Pour faire communiquer deux processus donnés, nous allons utiliser le système de fi- chiers comme espace partagé permettant d’échanger les données. Considérons une application répartie constituée de deux processus, le premier (client) écrit un entier dans un fichier “re- quetes.txt”, attend pendant une seconde, ensuite il lit et affiche la réponse qu’il va trouver dans le fichier “reponses.txt”. Le second processus (serveur) ouvre périodiquement (toutes les 250 ms) le fichier des requêtes, s’il trouve un entier, il calcule sa factorielle et met la réponse dans le fichier des réponses. 1. Donner un exemple de fichiers “requetes.txt” et “réponses.txt” possible. 2. Préciser le modèle client/serveur de cette application. 3. Ecrire les programmes Client.java et Serveur.java Correspondant aux client et au ser- veur. 4. Noter les problèmes rencontrés, ils seront résolus dans ce cours ! 5. Quels sont les avantages et inconvénients de cette méthode de communication ?