WSAASYNCSELECT
Attente des événements
qui affecte un socket
Declare Function WSAAsyncSelect Lib "wsock32.dll" _
(ByVal sock As Long, _
ByVal hwnd As Long, _
ByVal wMsg As Integer, _
ByVal lEvent As Long) As Integer
Paramètres :
sock : socket à surveiller
hwnd : contrôle qui recevra les messages
wMsg : message à envoyer
lEvent : masque d'événements obtenu par combinaison (or) des constantes suivantes
Public Const FD_READ = &H1 ' des données normales sont arrivées
Public Const FD_WRITE = &H2 ' le tampon de sortie est vide
Public Const FD_OOB = &H4 ' des données spéciales sont arrivées
Public Const FD_ACCEPT = &H8 ' un appel de l'extérieur vient d'arriver
Public Const FD_CONNECT = &H10 ' la connection est terminée
Public Const FD_CLOSE = &H20 ' la connection vient de se fermer
retour : SOCKET_ERROR en cas d'erreur, 0 sinon.
Public Const SOCKET_ERROR = -1
Remarque :
L'exemple
Winsock utilise une fonction CallBack pour récuperer
le message.
Exemple :
' mettre un contrôle bouton (Msg1) sur la form
' l'événement &202 est l'événement MouseUp
Dim CR as long
Dim sock as long
CR = WSAAsyncSelect(sock, Msg1.hwnd, &H202, FD_READ)
If CR = SOCKET_ERROR Then
MsgBox "Erreur sur WSAAsyncSelect = " & WSAGetLastError()
End If
Private Sub Msg1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
debug.print "Un message est arrivé, vous pouvez faire un recv"
End Sub
|