Question pour les pro de l'api Winsock

Signaler
Messages postés
110
Date d'inscription
mercredi 24 avril 2002
Statut
Membre
Dernière intervention
12 août 2010
-
Messages postés
6
Date d'inscription
jeudi 25 mars 2004
Statut
Membre
Dernière intervention
28 avril 2006
-
J'utilisais le controle winsock (mswinsk.ocx), je suis entrain de migrer mon serveur web en utlisant l'api wsock32.dll.

J'envoie, je recois pour ca rien de complexe mais en ce qui concerne la fonction :

winsock1.sendcomplete() existe t'elle sous l'api.

C'est pas une question pour débutant NOn ?

2 réponses

Messages postés
5
Date d'inscription
lundi 29 mars 2004
Statut
Membre
Dernière intervention
1 avril 2004

Bonjour,

Je pose le décor : je veux faire de la communication entre un PC et un automate sous une couche TCP IP.

Pour ce faire, j'utilise l'API de windows (wsock32.dll) car je ne veux pas utiliser le contrôle winsock OCX, j'ai bien compris qu'il fallait :

1) initialiser la dll avec
Declare Function WSAStartup Lib "wsock32" _
(ByVal wVersionRequired As Integer, _
wsData As WSA_DATA) As Long

2) créer le socket avec
Declare Function Socket Lib "wsock32.dll" Alias "socket" _
(ByVal afinet As Integer, _
ByVal socktype As Integer, _
ByVal protocol As Integer) As Long

3) connecter le socket avec
Declare Function connect Lib "wsock32" _
(ByVal sock As Long, _
name As SOCK_ADDR, _
ByVal namelen As Integer) As Long

4) Envoyer un message sur le pc distant avec
Declare Function send Lib "wsock32" _
(ByVal sock As Long, _
buffer As Any, _
ByVal length As Long, _
ByVal flags As Long) As Long

Mais c'est maintenant que ça se complique, car avec le "client" crée ci dessus, je voudrais créer un évènement lors d'une réception d'un message par le serveur sur lequel je suis connecté.
Je crois avoir compris (mais là, je suis moins sur) que :

1) on peut analyser les évènemtns qui affectent un socket avec :
Declare Function WSAAsyncSelect Lib "wsock32.dll" _
(ByVal sock As Long, _
ByVal hwnd As Long, _
ByVal wMsg As Integer, _
ByVal lEvent As Long) As Integer
mais je ne sais pas trop m'en servir, à cause de hwnd.

2) on lit le message du socket reçu avec :
Declare Function recv Lib "wsock32" _
(ByVal sock As Long, _
buffer As Any, _
ByVal length As Long, _
ByVal flags As Long) As Long

Mon problème est donc le suivant :
comment avoir un évènement (du type "Data_arrival" du contrôle winsock) qui me réveille afin que je puisse utiliser ma fonction recv pour lire dans mon socket.

Merci pour le Share ;)
Je suis automaticien et pas informaticien, soyez indulgent ;)
0
Messages postés
6
Date d'inscription
jeudi 25 mars 2004
Statut
Membre
Dernière intervention
28 avril 2006

Jette un oeil à cette source, ça pourra t'aider.http://www.vbfrance.com/code.aspx?ID=2465

bambino1
0