COHEN Jeremy Compte Rendu TP4 - JAVA - Client Serveur de fichier Introduction Le Client et le Serveur :… - sont deux programmes développés séparément mais prévu pour dialoguer et effectuer un certain nombres d’opérations ensemble. - fonctionnent parfaitement à distance, sur deux machines différentes reliées en réseaux local. - Peuvent échanger des fichiers peu importe leur taille, leur extension, et leur type (fichiers textes comme fichiers binaires sont transmis) -Reposent sur un principe de dossier « incoming » : le client comme le serveur doit posséder un répertoire « incoming » à la racine du fichier exécutable. Les échanges se feront donc entre les contenus de ces deux dossiers. -sont livrés avec chacun un dossier « incoming » comportant déjà des fichiers de différents type pour faciliter vos testes. Le Serveur Le serveur a été entièrement développé avec Notepad++, et repose sur le schéma proposé avec le sujet. Exécution : Au préalable il est nécessaire que la variable d’environnement « PATH » contienne le répertoire ou se trouve les outils binaires java. Dans le dossier « Serveur », exécutez le fichier « LauncherServeur.bat », celui-ci contient l’appel console « java Serveur » pour lancer le programme par le clique. Il fonctionne en mode console. Le serveur : 2 fichiers sources: « Serveur.java » et « Service.java ». Serveur.java contient le point d’entrer du programme : le « main ». Son travail est d’attendre la connexion d’un Client, lorsqu’un client se présente, le serveur lance alors un dialogue dans un nouveau thread. Ainsi Le serveur peu traiter logiquement une infinité de clients. La limite est relative aux ressources disponibles de l’ordinateur. Service.java contient toutes les méthodes nécessaire pour répondre aux demandes du client selon un protocole simple de communication, inventé spécialement pour le TP. Une fois le serveur lancer, il est seulement possible d’observer son activité sur son écran de sortie : la console. 1/3 COHEN Jeremy Compte Rendu TP4 - JAVA - Client Serveur de fichier Le Client Le client a été entièrement développé avec NetBeans 5.5. Exécution : Le développement avec NetBeans 5.5 a permis de générer facilement un fichier typiquement exécutable java. (extension .jar). Pour exécuter la version Client : ./Client IHM/Executable/JavaApplication1.jar Le Client possède une interface graphique composé d’éléments de type « swing ». L’IHM du Client a été mise au point de telle manière qu’aucune action paradoxale ne puisse être effectuée. Exemple : il n’est pas possible de modifier l’adresse ip du serveur après la connexion avec celui-ci, ou encore : il n’est pas possible de se déconnecter en plein transfert de fichier. A la première connexion, le Client demande immédiatement la liste des fichiers disponibles chez le serveur, liste ses propres fichiers et établie deux menus de type « popup » qui s’affichent uniquement lorsque l’utilisateur clique sur les boutons appropriés. Si l’utilisateur va supprimer manuellement un fichier après connexion, un bouton « rafraîchir » permettra toujours de mettre à jour l’état du contenu des dossiers « incoming ». A la suite d’un transfert, les menu sont automatiquement mis a jour. Le transfert d’un fichier est accompagné d’une barre de progression, ainsi que du détaille exacte de l’état du transfert : octet(s) transféré / taille du fichier. Le Client possède une zone de texte de sortie, ou ira s’imprimer son compte rendu des activités. Le Client permet de : -de Configurer l’adresse ip/hostname et numéro de port correspondant au Serveur. -d’afficher la liste des fichiers disponible sur le serveur, ainsi que ses propres fichiers. -de rafraîchir cette liste manuellement si un programme tiers effectue des modifications au contenu du répertoire « incoming » côté serveur : exemple : Le repertoire « incoming » du serveur est partagé entre cette application serveur Java et un logiciel de peer to peer sur internet ! (emule) Utilité : tous les utilisateurs du réseau local équipé d’une version cliente pourront bénéficier simultanément du contenu p2p, et actualiser la liste sans se déconnecter. 2/3 COHEN Jeremy Compte Rendu TP4 - JAVA - Client Serveur de fichier -de copier des fichiers du répertoire « incoming » serveur à destination du répertoire « incoming » client, et inversement. Le transfert d’un fichier se lance dans un nouveau thread. Dans le cas d’un transfert de fichier qui possède déjà un homonyme dans le répertoire de destination, le fichier sera renommé par son nom précédé d’un « underscore ». Une fonction récursive permet la vérification et le « renomage » des fichiers de manière à ce qu’aucun fichier existant de même nom ne soit écrasé lors d’un transfert. -de supprimer un fichier ou dossier côté serveur. -de créer un dossier côté serveur (à savoir que cette option a été inséré dans le projet pour répondre au maximum aux options demandées dans le sujet, malgré qu’il ne soit pas possible d’y placer des fichiers par notre application java. Cette fonction est donc plus théorique que pratique, mais fonctionne parfaitement. -et enfin nettoyer la zone de texte qui sert a afficher le compte rendu des activités effectuées avec celui-ci. 3/3