Recv = 0 pour toujours :-/
Salut tout le monde,
Alors je suis confronté à un tout petit soucis :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
char* msg="bonjour";
send(sock,msg,strlen(msg),0)
char buffer[1024]; int tbuf;
do
{
tbuf=recv(sock,buffer,sizeof(buffer),0);
if (tbuf==SOCKET_ERROR)
{
cout << "Erreur lors de la reception des donnes" << endl;
closesocket(sock);
break;
}
}while (tbuf>0); |
Jusqu'ici, tout se passe bien, ça quitte bien lorsque tbuf (valeur renvoyer par la fonction recv = 0)
Le soucis, c'est que pour la suite de mon programme, j'envoie à nouveau un autre message :
Code:
1 2
| char* msg2="ça va ?";
send(sock,msg2,strlen(msg2),0) |
suivi du notre pour recevoir :
Code:
1 2 3 4 5 6 7 8 9 10
| do
{
tbuf=recv(sock,buffer,sizeof(buffer),0);
if (tbuf==SOCKET_ERROR)
{
cout << "Erreur lors de la reception des donnes" << endl;
closesocket(sock);
break;
}
}while (tbuf>0); |
Seulement, il ne reçoit rien car tbuf = 0 et il ne change pas...
La seul "solution" que j'ai pu trouver pour le moment, c'est de créé un autre socket pour recevoir à nouveau...
Quelqu'un pourrait-il me proposer mieu ?
Merci d'avance ;)