Caractère bizzare

Résolu
bizzard4 Messages postés 155 Date d'inscription vendredi 12 décembre 2003 Statut Membre Dernière intervention 15 février 2009 - 21 mai 2007 à 03:08
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 - 21 mai 2007 à 17:55
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

cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
21 mai 2007 à 04:06
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[]'.
3
cs_max12 Messages postés 1491 Date d'inscription dimanche 19 novembre 2000 Statut Modérateur Dernière intervention 7 juillet 2014
21 mai 2007 à 13:07
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+
0
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
21 mai 2007 à 17:55
"char *buffer = new char[];" <<= c'est censé faire quoi cette ligne ?
0
Rejoignez-nous