Caractère bizzare [Résolu]

Signaler
Messages postés
155
Date d'inscription
vendredi 12 décembre 2003
Statut
Membre
Dernière intervention
15 février 2009
-
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
-
Bonjour!

J'essaye d'envoyer une chaîne de caractère en réseau mais cela ne marche pas :(

Par exemple :
j'envoye ceci =>
send(csock, "Bonjour Client", 14, 0);

je recoit par :
char *buffer = new char[];
recv(sock, buffer, 14, 0);

et quand j'affiche le buffer j'ai le bon résultat mais avec 2 caractère bizzare à la fin :S
Ça : ¯¦

Mon résultat est en fait : Bonjour Client¯¦

Je ne comprend pas vraiment ce qui sont et aussi j'aimerais savoir comment envoyer des chaînes de caractères dymique. (sans entré la longuer toujours parce que je ne sais pas vraiment comment envoyer la longeur )

Merci d'avance

~~ Cordialement Francois Gingras

3 réponses

Messages postés
1905
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
17 septembre 2012
2
Salut,

Faudrait rajouter le '\0' final de ta chaine a la reception, vu que tu ne l'envoie pas.

int ret = recv(...);

buffer[ret] = '\0';

Sinon il faudrait passer une taille lors de la création de ton tableau, je suis pas sur qu'on puisse faire de 'new char[]'.
Messages postés
1491
Date d'inscription
dimanche 19 novembre 2000
Statut
Modérateur
Dernière intervention
7 juillet 2014

salut, les caractères bizarre qui s'affiche c'est de la mémoire et sans le \0 il fouille dans la mémoire jusqu'a en trouver un, ce qui veut donc dire que sans sa ton programme pourrais crasher aléatoirement.

A+
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
5
"char *buffer = new char[];" <<= c'est censé faire quoi cette ligne ?