touys
Messages postés3Date d'inscriptionjeudi 25 janvier 2007StatutMembreDernière intervention 3 mai 2007
-
2 avril 2007 à 11:17
cs_aardman
Messages postés1905Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention17 septembre 2012
-
2 avril 2007 à 14:19
Bonjour ,
je réalise un programme en C++ d'un Client, mon Client doit traiter des messages asynchrones qu'il peut reçevoir, cependant je n'arrive pas à utiliser les méthodes :
WSARecv() et WSASend();
Si quelq'un connait un site pouvant m'expliquer ces deux méthodes car l'aide de microsoft;
touys
Messages postés3Date d'inscriptionjeudi 25 janvier 2007StatutMembreDernière intervention 3 mai 2007 2 avril 2007 à 13:56
bon j'ai réalisé un programme cependant j'ai un autre problème,
je me susi inspiré du code que l'on peut trouvé sur msdn concernant les methodes WSASend et WSARecv et je bloque sur le test :
if(WSAGetLastError() !=WSA_IO_PENDING)
printf("error occured at WSARecv()");
donc j'obtiens toujours ce message ,
je me suis donc penché sur la question qu'est ce que ce wsa_io_pending et ce que j'ai pu en tiré c'est :
WSA_IO_PENDING (système d'exploitation dépendant)
•, Traduction : les opérations superposées seront terminées ultérieurement., ----
•, Description : le programme a initié une opération superposée qui ne peut pas être terminée immédiatement. Une indication d'achèvement est envoyée plus tard quand l'opération s'est terminée.
cs_aardman
Messages postés1905Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention17 septembre 20123 2 avril 2007 à 14:19
Salut touys,
Les fonctions WSASend, WSARecv et la gestion de l'erreur WSA_IO_PENDING servent a mettre en place le mechanisme overlapped (traduit par 'superposé', ou encore 'en parallele' en francais) pour les sockets. C'est généralement utilisé pour les serveurs, car c'est plus performant mais aussi plus compliqué.
Pour une gestion beaucoup plus simple des messages asynchrones, il faut utiliser la fonction WSAAsyncSelect pour activer/desactiver la génération des evenements, ainsi que toutes les autres fonctions winsock de base (recv, send, connect...).