Message Asynchrone Socket

touys Messages postés 3 Date d'inscription jeudi 25 janvier 2007 Statut Membre Dernière intervention 3 mai 2007 - 2 avril 2007 à 11:17
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 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;

merci

3 réponses

DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
2 avril 2007 à 11:21
Regarde donc dans mes sources tu trouveras une exemple de Client/Serveur en mode asynchrone.

Shell
0
touys Messages postés 3 Date d'inscription jeudi 25 janvier 2007 Statut Membre Derniè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.

je ne comprend pas vrément
0
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
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...).
0
Rejoignez-nous