[C] Vider buffer

Résolu
kij_82 Messages postés 4260 Statut Contributeur -  
sam3000 Messages postés 1226 Statut Membre -
Bonjours,

J'ai un pb avec mon cliet serveur à la C!@# !!
Aléatoirement, le client ne recoit pas les bonnes données au bon moment... je pense que c'est du au fait que la transmission soit mal passée, et vu que je ne retente pas une transmission lorsque celle-ci n'a pas aboutie... ca fait tous foirer...
Mais pour en être sur, je voudrais vider mon tampon mémoire, ainsi que ma variable tampon qui sert à recevoir ou emmetre des données. Elle se présente de la facon suivante :
char tmp[256] = "";

Puis elle est remplie lors des transmissions client / serveur

Comment faire pour la vider ?

Merci beaucoup

++

5 réponses

greg49 Messages postés 154 Statut Membre 8
 
salut à tous,

je crois qu'il y a une fonction C toute faites pour ça:
fflush(stdin);

Mais je ne suis pas sur...
6
TuXor Messages postés 97 Statut Membre 25
 
salut,
essaye la fonction bzero()
(assure toi de son fonctionnement dans l'aide chui plus trés sur)

++
0
Char Snipeur Messages postés 10112 Statut Contributeur 1 299
 
tu peux aussi essayer tmp=""; ou for i=1 à 256 tmp[i-1]='\0';
voila
0
TuXor Messages postés 97 Statut Membre 25
 
'lut greg,

bien vu le fflush, cela dit fflush(stdin) c'est pour vider le buffer
d'entrée (clavier), mais ça peut peut étre marcher avec un buffer lambda. à tester...

0
kij_82 Messages postés 4260 Statut Contributeur 857
 
Merci pour les infos,

pour ce qui est du fflush, c'est bien mais ca demanderai une redirection des entrées avant de flusher, puis rétablir ensuite, à moins qu'il y ai une autre solutions,
J'ai donc opté pour
buffer = "";

Puis
int l = strlen(buffer);
for(i=0;i<l;i++)
{
   buffer[i] = '\0';
}


Et cela ne change rien à mon problème (perte de données en cours de transmittion)
Donc cela ne vient pas de la, c'est ce que je voulais vérifier,

lerci beacoup

++
0

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

Posez votre question
sam3000 Messages postés 1226 Statut Membre 144
 
salut kij_82,
si ton client/serveur utilise TCP/IP il n'y a pas de perte de données (c'est géré par les drivers les erreurs de transmission)
donc ça doit etre la vitesse de traitement ou une autre erreur quelque part!
@+
0