Dans la seconde étape, on permet à un client de télécharger le fichier depuis plusieurs serveurs. Le fichier sera découpé en plusieurs blocs de tailles égales (par exemple 4 Ko) qui seront téléchargés depuis plusieurs serveurs. Dans cette étape c’est le client qui choisit (par exemple aléatoirement) quel bloc télécharger depuis quel serveur.
Plan de travail :
Modifier le protocole pour ajouter des éléments permettant de demander un bloc spécifique
Modifier le package protocol pour qu’il puisse gérer les éléments de protocole ajoutés (#9)
Changer la version du protocole en 1.2
Dans la classe LoadRequest ajouter les nouveaux éléments du protocole
Modifier le serveur pour gérer l’envoi de n’importe quel bloc d’un fichier ;
Modifier le client pour qu’il puisse demander le téléchargement de n’importe quel bloc et re-créer le fichier complet (on pourra stocker des blocs de fichiers dans $(XDG_CACHE_HOME:-~/.cache)/PROJECT_P2P_CLIENT sous la forme d’un dossier filename.extension et de fichiers offset_end.part par exemple).
Modifier le client pour qu’il puisse demander le téléchargement depuis une liste de serveurs (liste entrée par l’utilisateur du client ou bien par la lecture d’un fichier de configuration config.toml dans $(XDG_CONFIG_HOME:-~/.config)/PROJECT_P2P_CLIENT ; faire une nouvelle classe dans le package utils)
Modifier le serveur pour qu’il demande à l’utilisateur sur quel port se lancer (faire une nouvelle classe dans le package utils)
Tests
Tests (avec un fichier plus petit que la taille d’un bloc)
avec un seul serveur
avec plusieurs serveurs
dont plusieurs ont le fichier
dont au moins un n’a pas le fichier
Tests (avec un fichier assez grand pour qu’il soit divisé en blocs)
avec un seul serveur
avec plusieurs serveurs
dont plusieurs ont le fichier
dont au moins un n’a pas le fichier
Vérifier que toutes les classes sont toujours documentées intégralement
Mise à jour de l’UML
Dans la seconde étape, on permet à un client de télécharger le fichier depuis plusieurs serveurs. Le fichier sera découpé en plusieurs blocs de tailles égales (par exemple 4 Ko) qui seront téléchargés depuis plusieurs serveurs. Dans cette étape c’est le client qui choisit (par exemple aléatoirement) quel bloc télécharger depuis quel serveur.
Plan de travail :
- [x] Modifier le protocole pour ajouter des éléments permettant de demander un bloc spécifique
- [x] Modifier le package `protocol` pour qu’il puisse gérer les éléments de protocole ajoutés (#9)
- [x] Changer la version du protocole en `1.2`
- [x] Dans la classe `LoadRequest` ajouter les nouveaux éléments du protocole
- [x] Modifier le serveur pour gérer l’envoi de n’importe quel bloc d’un fichier ;
- [x] Modifier le client pour qu’il puisse demander le téléchargement de n’importe quel bloc et re-créer le fichier complet (on pourra stocker des blocs de fichiers dans `$(XDG_CACHE_HOME:-~/.cache)/PROJECT_P2P_CLIENT` sous la forme d’un dossier `filename.extension` et de fichiers `offset_end.part` par exemple).
- [ ] Modifier le client pour qu’il puisse demander le téléchargement depuis une liste de serveurs (liste entrée par l’utilisateur du client ou bien par la lecture d’un fichier de configuration `config.toml` dans `$(XDG_CONFIG_HOME:-~/.config)/PROJECT_P2P_CLIENT` ; faire une nouvelle classe dans le package `utils`)
- [ ] Modifier le serveur pour qu’il demande à l’utilisateur sur quel port se lancer (faire une nouvelle classe dans le package `utils`)
- [ ] Tests
- [ ] Tests (avec un fichier plus petit que la taille d’un bloc)
- [ ] avec un seul serveur
- [ ] avec plusieurs serveurs
- [ ] dont plusieurs ont le fichier
- [ ] dont au moins un n’a pas le fichier
- [ ] Tests (avec un fichier assez grand pour qu’il soit divisé en blocs)
- [ ] avec un seul serveur
- [ ] avec plusieurs serveurs
- [ ] dont plusieurs ont le fichier
- [ ] dont au moins un n’a pas le fichier
- [ ] Vérifier que toutes les classes sont toujours documentées intégralement
- [ ] Mise à jour de l’UML
Dans la seconde étape, on permet à un client de télécharger le fichier depuis plusieurs serveurs. Le fichier sera découpé en plusieurs blocs de tailles égales (par exemple 4 Ko) qui seront téléchargés depuis plusieurs serveurs. Dans cette étape c’est le client qui choisit (par exemple aléatoirement) quel bloc télécharger depuis quel serveur.
Plan de travail :
protocol
pour qu’il puisse gérer les éléments de protocole ajoutés (#9)1.2
LoadRequest
ajouter les nouveaux éléments du protocole$(XDG_CACHE_HOME:-~/.cache)/PROJECT_P2P_CLIENT
sous la forme d’un dossierfilename.extension
et de fichiersoffset_end.part
par exemple).config.toml
dans$(XDG_CONFIG_HOME:-~/.config)/PROJECT_P2P_CLIENT
; faire une nouvelle classe dans le packageutils
)utils
)d01bbd85f2
.