vbGuy
Messages postés60Date d'inscriptionsamedi 10 novembre 2001StatutMembreDernière intervention13 juin 2004
-
21 janv. 2002 à 18:48
damienvi
Messages postés5Date d'inscriptionlundi 29 mars 2004StatutMembreDernière intervention 1 avril 2004
-
1 avril 2004 à 21:02
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
damienvi
Messages postés5Date d'inscriptionlundi 29 mars 2004StatutMembreDernière intervention 1 avril 2004 1 avril 2004 à 21:02
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 ;)
flagyg
Messages postés50Date d'inscriptionsamedi 1 septembre 2001StatutMembreDernière intervention20 septembre 2006 3 mars 2004 à 13:17
c'est nul,il manque des APIs en plus,et tu aurais au moins pu mettre des fonctions plutôt que de simplement copier le code qui se trouve ici : http://vbasicsite.free.fr/ApiWinsock.htm
sydesys
Messages postés3Date d'inscriptionlundi 15 septembre 2003StatutMembreDernière intervention19 septembre 2003 30 oct. 2003 à 10:09
L'API devient importante quand par example on souhaite créer une DLL qui exploite WinSock. Si on utilise l'ocx winsock dans une dll. On obtient des problèmes lors de l'utilisation de cette dll dans plusieurs thread ! Problème de Pile.
yoman64
Messages postés962Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 2 août 20102 26 févr. 2003 à 18:38
Pi pour les trojan c'est parfais,mais est-ce que la dll winsock vient avec toute les version de windows?
Et puis est-ce que la dll est plus légère que l'ocx?
Gorgot
Messages postés95Date d'inscriptionlundi 28 janvier 2002StatutMembreDernière intervention21 février 2008 14 oct. 2002 à 20:33
on fait des économies d'espace car on a pas besoin de j'oindre l'ocx winsock avec nos projets...
SuperClic
Messages postés48Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 3 octobre 2002 19 août 2002 à 16:56
Declare Function connect Lib "wsock32" (ByVal sock As Long, name As SOCK_ADDR, ByVal namelen As Integer) As Long
Type donné par l' utilisateur non défini.
???
Spylover
Messages postés110Date d'inscriptionmercredi 24 avril 2002StatutMembreDernière intervention12 août 20101 21 juin 2002 à 17:40
tu as une erreur pour la déclaration de la socket , car le nom du port tu dois utiliser la commande httons(N°port) pour la convertir au niveau de la socket.
Sinon c pas mal
beeline
Messages postés83Date d'inscriptionjeudi 20 décembre 2001StatutMembreDernière intervention 9 juin 2009 26 janv. 2002 à 23:24
ô niveau compatibilité, stabilité et taille,
Vous me consseiller quoi
qlq cé si je peut faire des economie en taille avec se code...
cs_ErAzEr
Messages postés42Date d'inscriptionlundi 9 octobre 2000StatutMembreDernière intervention12 novembre 2003 25 janv. 2002 à 17:59
cs_djamel001
Messages postés20Date d'inscriptionlundi 21 janvier 2002StatutMembreDernière intervention10 avril 2003 22 janv. 2002 à 13:48
ouai moi je suis d'accord avec cyrilp si tu pouvais nous pondre un zip avec des exemples concrets (et des commentaires si c possible) genre un chat client/serveur ca seré l'idéal mais merci pour ce ke t'a posté deja
cs_cyrilp
Messages postés140Date d'inscriptionmercredi 4 octobre 2000StatutMembreDernière intervention12 août 2009 22 janv. 2002 à 10:21
Bien bien bien, ... Mais [oui il y a un "MAIS"], pourrait-on avoir deux ou trois exemple concret... Car créer une socket, OK... Envoyer des données, OK... Mais par exemple, utiliser la fonction "Bind" avec comme parametre une variable de type "SOCK_ADDR" comment je l'initialise ???
Merci quand même, ... A++
Cyrilp
cs_aKheNathOn
Messages postés575Date d'inscriptiondimanche 23 décembre 2001StatutMembreDernière intervention23 octobre 2012 21 janv. 2002 à 20:47
ça déchire ! Je cherchais exactement ça ! Je sent que je vais trop m'amuser avec ça ! merci encore ...
kilomaster
Messages postés130Date d'inscriptionmercredi 2 janvier 2002StatutMembreDernière intervention 6 décembre 2006 21 janv. 2002 à 19:58
pourrais tu mettre un zip?
vbGuy
Messages postés60Date d'inscriptionsamedi 10 novembre 2001StatutMembreDernière intervention13 juin 2004 21 janv. 2002 à 18:48
1 avril 2004 à 21:02
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 ;)
3 mars 2004 à 13:17
30 oct. 2003 à 10:09
voir : http://www.vbfrance.com/code.aspx?ID=8101
26 févr. 2003 à 18:38
Et puis est-ce que la dll est plus légère que l'ocx?
14 oct. 2002 à 20:33
19 août 2002 à 16:56
Type donné par l' utilisateur non défini.
???
21 juin 2002 à 17:40
Sinon c pas mal
26 janv. 2002 à 23:24
Vous me consseiller quoi
qlq cé si je peut faire des economie en taille avec se code...
25 janv. 2002 à 17:59
il y a des exemples pour les api de winsock
22 janv. 2002 à 13:48
22 janv. 2002 à 10:21
Merci quand même, ... A++
Cyrilp
21 janv. 2002 à 20:47
21 janv. 2002 à 19:58
21 janv. 2002 à 18:48