Les APIs de Winsock
(ce serai plus simple avec l activeX).
Sorry ya pas de zip ...
Source / Exemple :
Declare Function Socket Lib "wsock32.dll" Alias "socket" (ByVal afinet As Integer, ByVal socktype As Integer)
Declare Function connect Lib "wsock32" (ByVal sock As Long, name As SOCK_ADDR, ByVal namelen As Integer) As Long
Declare Function bind Lib "wsock32" (ByVal sock As Long, addr As SOCK_ADDR, ByVal namelen As Long) As Long
Declare Function listen Lib "wsock32.dll" (ByVal sock As Long, ByVal backlog As Integer) As Integer
Declare Function send Lib "wsock32" (ByVal sock As Long, buffer As Any, ByVal length As Long, ByVal flags As Long) As Long
Declare Function recv Lib "wsock32" (ByVal sock As Long, buffer As Any, ByVal length As Long, ByVal flags As Long) As Long
Type IN_ADDR
S_addr As Long
End Type
Type SOCK_ADDR
sin_family As Integer
sin_port As Integer
sin_addr As IN_ADDR
sin_zero(0 To 7) As Byte
End Type
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
'module
Public Const PF_INET = 2
Public Const SOCK_STREAM = 1
Public Const SOCK_DGRAM = 2
Public Const IPPROTO_IP = 0
Public Const IPPROTO_TCP = 6
Public Const IPPROTO_UDP = 17
Public Const INVALID_SOCKET = -1
Public Const SOCKET_ERROR = -1
Public Const INADDR_ANY = &H0
Public Const SOCKET_ERROR = -1
Public Const MSG_OOB = &H1
Public Const MSG_DONTROUTE = &H4
Public Const MSG_OOB = &H1
Public Const MSG_PEEK = &H2
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
'connecter
Dim CR As Long
Dim sock As Long
Dim RemoteServer As SOCK_ADDR
RemoteServer.sin_family = AF_INET
RemoteServer.sin_port = htons(2000)
RemoteServer.sin_addr.S_addr = inet_addr("XXX.XXX.XXX.XXX")
RemoteServer.sin_zero(0) = 0
CR = connect(sock, RemoteServer, Len(RemoteServer))
'Création d 'un socket
Dim sock As Long
sock = Socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)
'Port
Dim CR As Long
Dim LocalServer As SOCK_ADDR
LocalServer.sin_family = AF_INET
LocalServer.sin_port = 0
LocalServer.sin_addr.S_addr = INADDR_ANY
CR = bind(sock, LocalServer, Len(LocalServer))
'listen
Dim CR As Long
Dim sock As Long
CR = listen(sock, 1)
'Envoyer
Dim CR As Long
Dim longSend As Long
longSend = Len(chaine)
ReDim buff(longSend + 1) As Byte
For i = 1 To longSend
buff(i - 1) = Asc(Mid(chaine, i, 1))
Next
buff(longSend) = 0
CR = send(sock, buff(0), longSend, 0)
'recevoir
Const MAX_BUFF_SIZE = 10000
Dim buff(0 To MAX_BUFF_SIZE) As Byte
Dim sock As Long
Dim CR As Long
CR = recv(sock, buff(0), MAX_BUFF_SIZE, 0)
'Fermer un socket
Dim Result As Long
Dim sock As Long
Result = closesocket(sock)
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.