* QUESTION Quel est l'ordre de grandeur maximum des fichiers que notre serveur aura à envoyer ? ko/mo/go ? ** REPONSE Go pour les + gros fichiers * QUESTION Bien que cela dépend de la question précédente, es-ce que la vitesse du transfère est un paramètre important ? Ou es-ce la gestion des ressources système qui est primordial ? ** REPONSE la vitesse de transfert devrait être meilleure si les ressuorces système sont bien gérées... non? Il faut évidement que ça marche "vite", mais aussi que ça "passe à l'échelle", c'est à dire que ça puisse supporter un nombre "raisonnable" de transferts simultanées * QUESTION Et une dernière questions moins importante, il y a t-il un objectif concernant le nombre maximum de téléchargement pouvant être opéré en même temps ? ** REPONSE C'est bien sûr lié à la question précédente. "Raisonnable" pourrait vouloir dire quelques centaines... * QUESTION Doit-on gérer les erreurs de transmission ? Avec un code correcteur par exemple. ** REPONSE Non. A priori les transferts, qu'ils se fassent en UDP ou en TCP, intègrent suffisamment de mécanismes de contrôle d'erreur pour qu'on puisse considérer que les données arrivent sans erreur à la couche Transport. * QUESTION La gestion des connexions TCP doit se faire en multi-thread (n clients = n threads) où bien avec un unique thread TCP qui est capable de gérer plusieurs clients vu qu'on est configuré en non-bloquant ? ** REPONSE La réponse est dans le sujet: "Le serveur TCP des connexions avec les clients devra obligatoirement être implémenté en non-bloquant avec les entrées-sorties de java.nio." En pratique, suivant l'implémentation que vous choisissez, vous pouvez avoir besoin de plusieurs threads, mais certainement pas une thread par client. * QUESTION Les fichiers que nous transférons sont-ils uniquement des fichiers texte ou bien peuvent-ils être de n'importe quel format comme des images, vidéos, etc? ** REPONSE Aucune hypothèse sur le type des fichiers transférés: ils peuvent être de n'importe quelle nature ou format. * QUESTION au niveau du client, pour la commande: ls : affichage du contenu du répertoire courant sur le serveur (un fichier/répertoire par ligne avec ses détails). voulez-vous dire quoi par ses détails ? quelles sont les détails à afficher? ** REPONSE Il s'agit du genre d'informations qu'on obtient quand on fait ls -l dans un shell... Cela peut être le type (fichier ou répertoire), la taille du fichier, la date de dernière modification... L'objectif pédagogique consiste simplement à vous faire récupérer des informations disponibles au niveau système. Vous pouvez regarder les classes du paquetage java.nio.file, même s'il y a d'autres manières de faire. * QUESTION Dans la partie MULTICAST, concernant le port et l'adresse IP Multicast, vous parlez de "choix arbitraire" ou "imposé par le serveur". Est-ce que cela signifie qu'on peut mettre en dur dans le code une adresse IP et un port choisi arbitrairement coté serveur et client ou bien faut-il mettre en place une "diffusion" (par UDP ou TCP) par le serveur de l'adresse IP et port choisi ? ** REPONSE Mettre "en dur" dans le code est la moins belle façon de faire un "choix arbitraire": ça pourrait tout aussi bien être un paramètre dans un fichier de config ou un argument sur la ligne de commande... mais en effet, c'est bien une des solutions qui s'offre à vous. Une autre piste évoquée est "imposé par le serveur": dans ce cas, c'est bien lui qui va choisir l'adresse et/ou le port multicast, et il faudra bien trouver un moyen d'en informer les clients, qui devront écouter sur cette adresse/port... La dernière piste évoquée parle de "négociation" avec le client... Pour répondre à la question, le sujet ne préconise pas l'une ou l'autre de ces alternatives, mais suggère une "réflexion": en effet, chaque solution a ses avantages et ses inconvénients, auxquels on souhaite que vous réfléchissiez. * QUESTION j'aimerais savoir si la commande current coté client affiche uniquement les téléchargements en cours du client ou tous ceux du serveur ? De plus, est-ce c'est le serveur qui exécute la commande puis transmet le résultat au client ou bien est-ce que c'est le client qui exécute directement la commande ? ** REPONSE La commande current exécutée par un client affiche uniquement les téléchargements en cours sur ce client. Savoir qui exécute réellement cette commande (doit elle être réalisée localement ou délocalisée sur le serveur) reste à votre choix. * QUESTION Dans la consigne de rendu c'est marqué que le programme doit est lancé avec la commande java -jar MuFiTServer.jar. Mais vu que le server prendre des arguments comme le numéro de port et directory, pour lancer le server ca doit être quelque chose comme ca; java -jar MuFiTServer.jar p 5445 d . Ou p est le port et '.' le repétoire courante par exemple. Meme chose pour le client. ** REPONSE Cela dépend de votre manière de gérer les arguments (ligne de commande, fichier de configuration, etc...). Si vous le lancez sans rien et qu'il y a besoin d'arguments, ça doit être indiqué à l'utilisateur, par l'affichage d'une aide par exemple. * QUESTION ** REPONSE