Pb de lecture sock

Signaler
Messages postés
8
Date d'inscription
dimanche 2 février 2003
Statut
Membre
Dernière intervention
14 juillet 2003
-
Messages postés
1905
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
17 septembre 2012
-
bah jarriv a me connecter etc etc
jarriv a recevoir des donnée avec
{
char buffer[64];
int rec;
do
{
rec = recv(sock,buffer,64*sizeof(char),0);
buffer[rec] = '\0' ;
cout << buffer << endl;
memset(buffer, 0, 64*sizeof(char));

}while(rec>0);
}

mais ca me block le programme : jpe rien faire a cotes ex envoyer des données

alors jvoudrait savoir cmt on fait pour par ex detecter un changement ds le buffer
ou arriver a lire (plusieur ligne ...) sans que ca "block" le programme
merci

1 réponse

Messages postés
1905
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
17 septembre 2012
2
Salut,
Bon, alors moi je connais une maniere de rendre ta fonction recv() non bloquante, mais ca marche pas sous dos, seulement sous win32. Il faut utiliser la fonction WSAAsyncSelect. Cette fonction "transcrit" les evements sockets (envois; receptions...) sous la forme de messages windows. Faut aller voir sur msdn si cette méthode t'interesse.

Sinon, je crois que tu peux creer un second Thread (qui recois les données) pendant que le 1er fait autre chose. Mais ca j'ai jamais fait donc je peux pas vraiment t'aider plus que ca.