Probléme soket avec la fonction recv

Résolu
chrno84 Messages postés 2 Date d'inscription samedi 13 décembre 2008 Statut Membre Dernière intervention 13 décembre 2008 - 13 déc. 2008 à 14:34
chrno84 Messages postés 2 Date d'inscription samedi 13 décembre 2008 Statut Membre Dernière intervention 13 décembre 2008 - 13 déc. 2008 à 23:43
Bonjour, je pense avoir un probléme avec ma fonction recv, en effet
elle me retourne la valeur -1, mon send fonctionne bien (retourne une
valeur >0) je vous met le code.

Voila mon code sur le serveur :

int ts=accept(sock,(struct sockaddr*)&sin,(socklen_t*)&sin);

if(ts>0)cout<<"connection ok !!"<<endl;else cout<<"connection failed"<<endl;

int taille = recv(sock,msg,sizeof(msg), 0); // probleme dans la reception de msg

//cout<<msg<<endl;// probléme de recept msg

msg[taille] = '\0' ;

int nbEcho = atoi(msg);

for(int i = 0 ; i<nbEcho ; ++i)

{

int taille = recv(sock, msg, sizeof(msg), 0);

//recoit une info et remplit la variable avec
msg[taille] = '\0' ; // marqueur de fin de chaine

cout << "Message reçu : " << msg << endl;

send(sock, (void *) msg, taille, 0);

//transtype le message

}

return 0;

}

et voila la partie client :

int co=connect(sock,(struct sockaddr*)&sin,sizeof(sin));

char msg[2048];

string envoi;

int coo=send(sock,(void*)argv[3], strlen(argv[3]), 0);//le send fonctionne

cout<<coo<<endl;

si vous trouvez une solution, sa serais super, car je commence vraiment a m'arracher les cheveux...

Cordialement Chrno84

2 réponses

cs_goodboy21 Messages postés 29 Date d'inscription samedi 1 décembre 2007 Statut Membre Dernière intervention 11 avril 2010
13 déc. 2008 à 16:27
salut, tu dois mette ts dans la fonction recv ,
car ton sock c'est juste pr accepter les clients et ton ts est l'autre bout de la connexion.

recv(ts,msg,sizeof(msg), 0);
ensuite si t'es pas sur de la taille que tu dois lire utilise ioctlsocket:
  int count;
 ioctlsocket(client,FIONREAD,(unsigned long*)&count); //combien d'octet on a à lire;
 char buf[100];
 recv(client,buf,count,0);
3
chrno84 Messages postés 2 Date d'inscription samedi 13 décembre 2008 Statut Membre Dernière intervention 13 décembre 2008
13 déc. 2008 à 23:43
c'est bon sa marche, merci bcp :)
0
Rejoignez-nous