guiguikun
Messages postés92Date d'inscriptionjeudi 28 novembre 2002StatutMembreDernière intervention 1 octobre 2003
-
26 août 2003 à 19:48
cs_aardman
Messages postés1905Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention17 septembre 2012
-
27 août 2003 à 14:33
Bonjour,
J'ai créé un client/serveur qui transfert des fichiers.
Après le transfert, les 2 fichiers ont la même taille, mais celui qui a été transféré n'est pas valide.
Mon comparateur de fichier m'indique qu'il y a 20 différences sur un fichier d'environ 13Ko.
Comment puis-je faire pour résoudre ce problème ?
mon serveur envoit char par char au client (j'ai fait cela pour le testing, je changerai ca + tard)
lorsque mon client reçoit le flag "/SENDFILE ", il se met en mode "réception" et ecrit tout ce qu'il recoit dans le fichier jusqu'a ce qu'il recoive le flag "/EOF"
J'utilise Borland C++ Builder avec les composants TServerSocket et TClientSocket
Anacr0x
Messages postés515Date d'inscriptiondimanche 25 mai 2003StatutMembreDernière intervention27 avril 20062 27 août 2003 à 12:14
As-tu ouvert tes fichiers en mode binaire ?? c'est très important, sinon, il va prendre ta chaine pour du texte !
De plus, il ne faut pas utilisé de strlen, c'est incompatible avec une chaine binaire...
Si tu n'y arrive toujour pas, met ton code, on pourra t'aidé plus facilement
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_aardman
Messages postés1905Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention17 septembre 20123 27 août 2003 à 14:33
Salut,
je pense pas que c'est un prob de strlen(..) comme tu avais eu car il n'utilise pas cette fonction, il transfere octet par octet.
A mon avis, c'est le caractere ' / ' qui doit etre mal réécris lorsqu'il est recu, peut etre au moment ou tu teste /EOF pour la fin du transfer.
Mais bon sans code c'est vrai qu'on peut emmetre que des hypotheses...