_testtesttest_
Messages postés2Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention25 avril 2004
-
25 avril 2004 à 00:29
_testtesttest_
Messages postés2Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention25 avril 2004
-
25 avril 2004 à 11:29
Bonjour,je débute en c/cpp et je suis confronté à un probléme.
Je suis en train de codé un programme qui récupére des données sur un socket donc grace a une ligne de la forme :
recv(sock,buffer, sizeof(buffer),0);
Je doit ensuite écrire le contenu de buffer dans un fichier,le probléme est l'ajout de caractére " ÌÌÌÌÌÌÌ" (sans doute parsque le buffer n'est pas de la taille exacte des donnée recu).Donc ma question est comment éviter l'insertion de ces caractéres.
Merci !
petitchech
Messages postés114Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention28 juin 2004 25 avril 2004 à 01:02
ah j'ai peu etre mal compri il ajoute c caratere a la fin de se que tu a reçu ?
soi tu fai un memset(buffer,0,buffer); de la variable avant soi tu fai buffer[recv(sock,buffer, sizeof(buffer),0)] = '\0';
DeAtHCrAsH
Messages postés2670Date d'inscriptionvendredi 25 janvier 2002StatutMembreDernière intervention 6 février 2013 25 avril 2004 à 09:54
Si ca t'ajoutes des " ÌÌÌÌÌÌÌ" c'est parceque ta variable char n'a pas été initialisé !!!
Pour y remedier, declare la soit en static, soit tu fais par exemple char buffer[500], soit char *buffer = new char[sizeof(char)] qui allouera la taille d'un char ....
Voila ... Si t'as toujours des problemes mets nous le code pour qu'on puisse mieux t'aider ...
MetalDwarf
Messages postés241Date d'inscriptionmardi 29 octobre 2002StatutMembreDernière intervention23 janvier 2006 25 avril 2004 à 11:17
Je pense que ton probleme est que tu ecris l integralite de ton buffer dans ton fichier. Il faut pour eviter ce probleme ecrire uniquement le nombre d octets recus, qui est la valeur renvoyee par recv().
en fait tu fais :
int nb;
/* ... */
nb = recv(sock,buffer, sizeof(buffer),0);
fwrite(buffer,1,nb,fd);
Vous n’avez pas trouvé la réponse que vous recherchez ?