Bonsoir,
Je travaille actuellement sur une application client-serveur dans laquelle le client et le serveur correspondent par transmissions de fichiers. Le problème majeur provient du fait que, par moment, la requête du client peut nécessiter l'envoi de plus d'une centaine de fichiers textes et/ou binaires, tandis que le serveur ne prendra que quelques secondes pour la traiter, puis un temps conséquent pour répondre au client, lui transmettant également un certain nombre de fichiers.
Les communications du protocole sont synchrones. Pour le transport des données, nous utilisons le protocole TCP. Notre travaillons dans un environnement Windows, avec les winsocks. Au niveau applicatif, les fichiers sont segmentés par blocs au moins égaux à 2048 octets et envoyés de manière séquentielle. Du reste, les fichiers sont reconstitués selon le même principe, toujours séquentiellement.
Ma principale interrogation est la suivante :
Comment pourrions-nous optimiser les transmissions client-serveur dans une telle configuration ?
Pour ce faire, est-il nécessaire de prendre en compte l'encapsulation des protocoles pour déterminer la taille des données à envoyer via la fonction send() ?
Grosso modo, y'a t-il autre chose à faire que d'augmenter la valeur du paramètre pour le nombre d'octets à recevoir et ainsi écrire les fichiers en limitant les accès au disque ?
Cordialement,
Bubble.
Partager