dletozeun
Messages postés546Date d'inscriptionvendredi 13 février 2004StatutMembreDernière intervention 9 janvier 2008
-
11 juin 2004 à 21:41
dletozeun
Messages postés546Date d'inscriptionvendredi 13 février 2004StatutMembreDernière intervention 9 janvier 2008
-
12 juin 2004 à 18:05
bonjour,
j'essais de faire communiquer 2 programmes avec les sockets.
J'utilise la fonction recv():
recv(m_socket,recvbuf,50,0);
mais j'ai beau effacer la chaine recvbuf avec : strcpy(recvbuf,""); ,j'ai l'impression qu'il y reste toujours qqchose dedans!
par exemple si le client envoie: "10!14" le serveur recoit:"10!14"
mais ensuite si le client envoie: "9!14", le serveur recoit:"9!144"
je galere trop et je voudrais savoir si il existe un autre buffer integré a la fonction recv() qui enregistre les données qu'elle recoit puis les recopies dans la chaine de caractere que j'ai defini(recvbuf).
cs_AlexMAN
Messages postés1536Date d'inscriptionsamedi 21 décembre 2002StatutMembreDernière intervention24 mai 20091 12 juin 2004 à 10:32
Uilise memset(recvbuf, 0, sizeof recvbuf); pour "vider" ton buffer...Une ptite remark : si tu communik sur un mm ordinateur, remplace la fonction recv(..) par recvfrom(..), cette fonction est specifik au protocole UDP, alors ke lotre est pluto pour TCP/IP...
Viper31
Messages postés96Date d'inscriptionmardi 2 avril 2002StatutMembreDernière intervention 7 août 2005 12 juin 2004 à 10:52
AlexMAN , je vois pas ce qui empeche de faire du TCP sur le meme pc ... il peut dev sur le meme pc d abord , mais peut etre que ca sera pas fait pour tourner sur le meme pc plus tard !! qui sait ...
sinon meme remarqué , "vide" ton buffer , autant coté client que serveur ...
Puis une erreur courante : send(num_sockc , buffer , strlen(buffer) , 0); <- ici souvent , les gens mettent sizeof au lieu de strlen , ce qui bien sur est une hérésie en soit !!!
par contre pour recv , sizeof bien sur , car tu sais pas a priori le nb de char que tu va recevoir .... voila !