OVH Cloud OVH Cloud

Utiliser WSAAsyncSelect comme select ?

2 réponses
Avatar
Sylvain Bénot
Bonjour,

La fonction WSAAsyncSelect() permet d'associer un message window a un
evénement sur une socket et une seule alors que la fonction select()
permet de gérer plusieurs socket en même temps.

Est-on obliger de gérer un message spécifique par socket pour avoir un
fonctionnement équivalent de la fonction select() ?

Ou bien existe t'il un mixte des deux fonctions ?

Merci.

Sylvain

2 réponses

Avatar
adebaene
Sylvain Bénot wrote in message news:...
Bonjour,

La fonction WSAAsyncSelect() permet d'associer un message window a un
evénement sur une socket et une seule alors que la fonction select()
permet de gérer plusieurs socket en même temps.

Est-on obliger de gérer un message spécifique par socket pour avoir un
fonctionnement équivalent de la fonction select() ?

Ou bien existe t'il un mixte des deux fonctions ?





Issu de la documentation de WSAAsyncSelect:
"When one of the nominated network events occurs on the specified
socket s, the application's window hWnd receives message wMsg. The
wParam parameter identifies the socket on which a network event has
occurred. The low word of lParam specifies the network event that has
occurred. The high word of lParam contains any error code. The error
code be any error as defined in Winsock2.h."

Donc il suffit d'appeler cette fonction pour chaque socket que tu veux
surveiller. Ta fenêtre recevra un message (toujours le même) pour
*toutes* les
sockets et pour *tous* les événements des sockets. Il suffit de parser
wParam et lParam pour retrouver tes petits.

Arnaud
Avatar
Sylvain Bénot
Arnaud Debaene a écrit:
Sylvain Bénot wrote in message news:...

Bonjour,

La fonction WSAAsyncSelect() permet d'associer un message window a un
evénement sur une socket et une seule alors que la fonction select()
permet de gérer plusieurs socket en même temps.

Est-on obliger de gérer un message spécifique par socket pour avoir un
fonctionnement équivalent de la fonction select() ?

Ou bien existe t'il un mixte des deux fonctions ?






Issu de la documentation de WSAAsyncSelect:
"When one of the nominated network events occurs on the specified
socket s, the application's window hWnd receives message wMsg. The
wParam parameter identifies the socket on which a network event has
occurred. The low word of lParam specifies the network event that has
occurred. The high word of lParam contains any error code. The error
code be any error as defined in Winsock2.h."

Donc il suffit d'appeler cette fonction pour chaque socket que tu veux
surveiller. Ta fenêtre recevra un message (toujours le même) pour
*toutes* les
sockets et pour *tous* les événements des sockets. Il suffit de parser
wParam et lParam pour retrouver tes petits.

Arnaud



Merci. J'ai du lire la doc un peu trop vite pour rater ce passage !!!

Sylvain