Sockets : Transfert de fichiers.

guiguikun Messages postés 92 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 1 octobre 2003 - 26 août 2003 à 19:48
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 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

5 réponses

cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
26 août 2003 à 19:51
Salut,
Tu peux pas avoir + d'infos sur les differences entre les 2 fichiers ? Peut etre en essayant sur un .txt d'1 Ko ca serait plus simple aussi.
0
guiguikun Messages postés 92 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 1 octobre 2003 1
26 août 2003 à 21:20
Ben avec un fichier texte tout fonctionne parfaitement
0
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
26 août 2003 à 21:22
Et au niveau des differences ?
0
Anacr0x Messages postés 515 Date d'inscription dimanche 25 mai 2003 Statut Membre Dernière intervention 27 avril 2006 2
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
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...
0
Rejoignez-nous