Salut tout le monde!
Je suis actuellement en train de développer une appli qui doit permettre de transférer des fichiers, peu importe leur taille.
Pour cela, je transfère mes fichiers par blocs de 1000 octets.
Mon problème est le suivant: pour des petits fichiers, aucun problème. Sauf que pour 2 images de 350.000 octets (environ), je me retrouve, soit avec une image qui fait 25.000 octets (alors que j'ai bien transmis mes 349 ou 350 paquets de 1000 char!), soit avec un bug de mon appli (mais ça, j'vais le régler tout seul)...
Je paste pas mon code tout de suite, il est assez long. J'vais le décrire en speed:
-l'envoyeur lit la taille du fichier, et envoie au receveur le nombre de paquets qu'il sera nécessaire de recevoir (jusque là, c'est bon).
-le receveur se place dans une boucle pour recevoir tout ça
-l'envoyeur lit le fichier, et des qu'il a atteint 1000 char lus, il envoie le bloc.
-le receveur, s'il n'a pas eu de pb, écrit dans le fichier destination (avec l'opérateur << de c++)
Au final, j'ai bien 350 messages transmis (reçus et envoyés), mais je me retrouve avec un fichier trop petit!!! Je vois pas trop où ça plante...
Et ce qui est encore plus dingue, c'est que quel que soit le sens du transfert, je me retrouve avec un fichier de la meme taille, à l'octet près!!! Du coup je me demande où passent tous ces octets, vu que je vois pas trop comment 350 paquets de 1000 char peuvent donner 35.000 chars (ou alors j'ai raté une classe au primaire)... A tous les coups j'ai encore fait une connerie vraiment abérante, mais là, je la vois pas.
Merci d'avance!
Partager