Pb de lecture sock

cs_ExTAS Messages postés 8 Date d'inscription dimanche 2 février 2003 Statut Membre Dernière intervention 14 juillet 2003 - 14 juil. 2003 à 20:50
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 - 14 juil. 2003 à 21:24
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

cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
14 juil. 2003 à 21:24
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.
0
Rejoignez-nous