Bonjour,
Je suis en train de créer une appli dans Access pour collecter diverses info récoltées sur des équipements connectés via éthernet TCP IP. Pour cela j'ai écrit une routine VBA basée sur les fonctions de WS2_32.dll (=winsock). Par contre, après plusieurs jours de recherche google, je n'arrive pas à trouver comment capturer dans visuel basic 6 les évènements émis par winsock pour déclencher une sub qui acceptera les demandes de connexion et de réception des données.
J'ai étudié le composant microsoft windows control 6.0. Premier pb : "microsoft access n'accepte pas ce controle activeX".
Le second problème est le coté capricieux lorsqu'il s'agit d'accepter une connection sur un port qui vient d'être déconnecté, même si celui-ci a été fermé avec un close comme l'explique ce tuto fort intéressant http://grafikm.developpez.com/vbreseau/Lecon1/
Merci d'avance pour votre aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 'Plus haut dans le code, il y a les instructions Declare de WS2_32.dll, ainsi que les types requis. La compilation / exécution du code est OK. 'Get a socket ServSock = Socket(AF_INET, SOCK_STREAM, IPProto_TCP) If ServSock = SockErr Then MsgBox "Call to Socket failed": Exit Sub 'Make this socket listen SockAddr.sin_addr = Inet_Addr("192.168.1.43") 'The local Host SockAddr.sin_family = AF_INET SockAddr.sin_port(1) = Int(port / 256): SockAddr.sin_port(2) = port Mod 256 ErrCode = Bind(ServSock, SockAddr, LenB(SockAddr)) If ErrCode = SockErr Then MsgBox "Bind failed": Stop 'Activate events for connection request or data received EvtHdle = WSACreateEvent If EvtHdle = SockErr Then MsgBox "Failed to create an event": Stop If WSAEventSelect(ServSock, EvtHdle, fd_Accept + fd_Read) = SockErr Then Stop Question : Comment associer un évènement émis par WinSock (identifié par evtHdle) à une procédure VB6 qui pourrait traiter l'évènement ou même faire un raiseEvent pour générer un évènement VB ? Je n'ai pas trouvé de moyen de passer une procédure de callback.




Répondre avec citation
Partager