cs_ExTAS
Messages postés8Date d'inscriptiondimanche 2 février 2003StatutMembreDernière intervention14 juillet 2003
-
14 juil. 2003 à 20:50
cs_aardman
Messages postés1905Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention17 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
cs_aardman
Messages postés1905Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention17 septembre 20123 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.