Bonjour,
j'ai crée un programme dont le principe est le suivant :
- Clients et serveurs disposent d'une liste d'adresses IP de serveurs connus (dans un fichier).
- Le client lance une requête spécifiant un nom de fichier à télécharger.
- Cette requête est transmise aux serveurs que le client connaît
- Lorsqu'un serveur reçoit une requête, il renvoie le fichier demandé s'il le détient, et sinon réémet la requête vers les autres serveurs qu'il connaît, etc...
- Dés que le fichier demandé est trouvé quelque part, il est ramené vers le client et la recherche s'arrête.
- Le serveur est multiprogrammé.
Je voudrais modifié mon programme pour qu'au lieu de télécharger un fichier TOTO en une seule fois, le serveur qui s'occupe du fichier TOTO indique en combien de fragments ce fichier a été découpé ainsi que pour chaque fragment, quels sont les clients qui l'ont.
Le client choisira alors chez qui il récuperera les fragments
Par exemple, admettons qu'un client CLIENT souhaite télécharger le fichier TOTO.
CLIENT envoie cette requete aux serveurs (dont il connait les IP).
C'est le serveur B (par exemple) qui gere ce fichier donc le serveur répond à CLIENT que le fichier TOTO a été découpé en 4 fragments et que :
-le client 1 a les fragments 1 et 3
-le client 2 a les fragments 1 et 4
-le client 3 a le fragment 2
Donc CLIENT aura le choix pour récupérer le fragment 1 entre client 1 et client 2, pour le fragment 2 il devra le télécharger chez le client 3, etc ...
Des que CLIENT télécharge un fragment, il doit informer le serveur B qu'il a recupéré un fragment et devient à son tour un client pour les autres.
Le soucis que j'ai, c'est comment faire pour que le serveur B sache les clients qui ont les fragments du fichier TOTO et pour CLIENT informe le serveur B qu'un fragment a été récupéré.
PS : j'ai déjà crée une méthode permettant de découper un fichier en différents fragments ainsi que pour la reconstruction du fichier initial à partir de tous les fragments.
Merci
Partager