[C] Vider buffer [Résolu/Fermé]

Signaler
Messages postés
4088
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
-
Messages postés
1225
Date d'inscription
mercredi 22 décembre 2004
Statut
Membre
Dernière intervention
13 juin 2005
-
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

Messages postés
154
Date d'inscription
mardi 18 mai 2004
Statut
Membre
Dernière intervention
12 septembre 2007
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 56962 internautes nous ont dit merci ce mois-ci

Messages postés
97
Date d'inscription
lundi 23 mai 2005
Statut
Membre
Dernière intervention
28 avril 2006
25
salut,
essaye la fonction bzero()
(assure toi de son fonctionnement dans l'aide chui plus trés sur)

++
Messages postés
9687
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
21 juin 2020
1 181
tu peux aussi essayer tmp=""; ou for i=1 à 256 tmp[i-1]='\0';
voila
Messages postés
97
Date d'inscription
lundi 23 mai 2005
Statut
Membre
Dernière intervention
28 avril 2006
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...

Messages postés
4088
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
840
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

++
Messages postés
1225
Date d'inscription
mercredi 22 décembre 2004
Statut
Membre
Dernière intervention
13 juin 2005
140
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!
@+