人家的vb winsock 通讯

前端之家收集整理的这篇文章主要介绍了人家的vb winsock 通讯前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

'强人的api winsock@H_404_2@

Declare @H_404_2@Function@H_404_2@ bind Lib @H_404_2@"@H_404_2@ws2_32.dll@H_404_2@"@H_404_2@ (ByVal s @H_404_2@As@H_404_2@ @H_404_2@Long@H_404_2@,addr @H_404_2@As@H_404_2@ SOCK_ADDR,ByVal namelen @H_404_2@As@H_404_2@ @H_404_2@Long@H_404_2@) @H_404_2@As@H_404_2@ @H_404_2@Long@H_404_2@
Declare @H_404_2@Function@H_404_2@ closesocket Lib @H_404_2@"@H_404_2@ws2_32.dll@H_404_2@"@H_404_2@ (ByVal s @H_404_2@As@H_404_2@ @H_404_2@Long@H_404_2@) @H_404_2@As@H_404_2@ @H_404_2@Long@H_404_2@
Declare @H_404_2@Function@H_404_2@ connect Lib @H_404_2@"@H_404_2@ws2_32.dll@H_404_2@"@H_404_2@ (ByVal s @H_404_2@As@H_404_2@ @H_404_2@Long@H_404_2@,name @H_404_2@As@H_404_2@ SOCK_ADDR,ByVal namelen @H_404_2@As@H_404_2@ @H_404_2@Integer@H_404_2@) @H_404_2@As@H_404_2@ @H_404_2@Long@H_404_2@
Declare @H_404_2@Function@H_404_2@ inet_addr Lib @H_404_2@"@H_404_2@ws2_32.dll@H_404_2@"@H_404_2@ (ByVal cp @H_404_2@As@H_404_2@ @H_404_2@String@H_404_2@) @H_404_2@As@H_404_2@ @H_404_2@Long@H_404_2@
Declare @H_404_2@Function@H_404_2@ htons Lib @H_404_2@"@H_404_2@ws2_32.dll@H_404_2@"@H_404_2@ (ByVal hostshort @H_404_2@As@H_404_2@ @H_404_2@Integer@H_404_2@) @H_404_2@As@H_404_2@ @H_404_2@Integer@H_404_2@
Declare @H_404_2@Function@H_404_2@ recv Lib @H_404_2@"@H_404_2@ws2_32.dll@H_404_2@"@H_404_2@ (ByVal s @H_404_2@As@H_404_2@ @H_404_2@Long@H_404_2@,buffer @H_404_2@As@H_404_2@ Any,ByVal length @H_404_2@As@H_404_2@ @H_404_2@Long@H_404_2@,ByVal flags @H_404_2@As@H_404_2@ @H_404_2@Long@H_404_2@) @H_404_2@As@H_404_2@ @H_404_2@Long@H_404_2@
Declare @H_404_2@Function@H_404_2@ send Lib @H_404_2@"@H_404_2@ws2_32.dll@H_404_2@"@H_404_2@ (ByVal s @H_404_2@As@H_404_2@ @H_404_2@Long@H_404_2@,ByVal flags @H_404_2@As@H_404_2@ @H_404_2@Long@H_404_2@) @H_404_2@As@H_404_2@ @H_404_2@Long@H_404_2@
Declare @H_404_2@Function@H_404_2@ shutdown Lib @H_404_2@"@H_404_2@ws2_32.dll@H_404_2@"@H_404_2@ (ByVal s @H_404_2@As@H_404_2@ @H_404_2@Long@H_404_2@,ByVal how @H_404_2@As@H_404_2@ @H_404_2@Long@H_404_2@) @H_404_2@As@H_404_2@ @H_404_2@Long@H_404_2@
Declare @H_404_2@Function@H_404_2@ ioctlsocket Lib @H_404_2@"@H_404_2@ws2_32.dll@H_404_2@"@H_404_2@ (ByVal s @H_404_2@As@H_404_2@ @H_404_2@Long@H_404_2@,ByVal v @H_404_2@As@H_404_2@ @H_404_2@Long@H_404_2@,ut @H_404_2@As@H_404_2@ @H_404_2@Long@H_404_2@) @H_404_2@As@H_404_2@ @H_404_2@Long@H_404_2@
Declare @H_404_2@Function@H_404_2@ socket Lib @H_404_2@"@H_404_2@ws2_32.dll@H_404_2@"@H_404_2@ (ByVal af @H_404_2@As@H_404_2@ @H_404_2@Long@H_404_2@,ByVal type_specification @H_404_2@As@H_404_2@ @H_404_2@Long@H_404_2@,ByVal protocol @H_404_2@As@H_404_2@ @H_404_2@Long@H_404_2@) @H_404_2@As@H_404_2@ @H_404_2@Long@H_404_2@
Declare @H_404_2@Function@H_404_2@ WSACancelBlockingCall Lib @H_404_2@"@H_404_2@ws2_32.dll@H_404_2@"@H_404_2@ () @H_404_2@As@H_404_2@ @H_404_2@Long@H_404_2@
Declare @H_404_2@Function@H_404_2@ WSACleanup Lib @H_404_2@"@H_404_2@ws2_32.dll@H_404_2@"@H_404_2@ () @H_404_2@As@H_404_2@ @H_404_2@Long@H_404_2@
Declare @H_404_2@Function@H_404_2@ WSAGetLastError Lib @H_404_2@"@H_404_2@ws2_32.dll@H_404_2@"@H_404_2@ () @H_404_2@As@H_404_2@ @H_404_2@Long@H_404_2@
Declare @H_404_2@Function@H_404_2@ WSAStartup Lib @H_404_2@"@H_404_2@ws2_32.dll@H_404_2@"@H_404_2@ (ByVal wVersionrequired @H_404_2@As@H_404_2@ @H_404_2@Integer@H_404_2@,wsData @H_404_2@As@H_404_2@ WSA_DATA) @H_404_2@As@H_404_2@ @H_404_2@Long@H_404_2@
Declare @H_404_2@Function@H_404_2@ WSASocketA Lib @H_404_2@"@H_404_2@ws2_32.dll@H_404_2@"@H_404_2@ (ByVal af @H_404_2@As@H_404_2@ @H_404_2@Long@H_404_2@,ByVal type1 @H_404_2@As@H_404_2@ @H_404_2@Long@H_404_2@,ByVal protocol @H_404_2@As@H_404_2@ @H_404_2@Long@H_404_2@,lpProtocolInfo @H_404_2@As@H_404_2@ @H_404_2@Long@H_404_2@,g @H_404_2@As@H_404_2@ @H_404_2@Long@H_404_2@,ByVal dwFlags @H_404_2@As@H_404_2@ @H_404_2@Long@H_404_2@)
Declare @H_404_2@Function@H_404_2@ WSAIoctl Lib @H_404_2@"@H_404_2@ws2_32.dll@H_404_2@"@H_404_2@ (ByVal s @H_404_2@As@H_404_2@ @H_404_2@Long@H_404_2@,ByVal dwIoControlCode @H_404_2@As@H_404_2@ @H_404_2@Long@H_404_2@,lpvInBuffer @H_404_2@As@H_404_2@ @H_404_2@Long@H_404_2@,ByVal cbInBuffer @H_404_2@As@H_404_2@ @H_404_2@Long@H_404_2@,lpvOutBuffer @H_404_2@As@H_404_2@ @H_404_2@Long@H_404_2@,ByVal cbOutBuffer @H_404_2@As@H_404_2@ @H_404_2@Long@H_404_2@,lpcbBytesReturned @H_404_2@As@H_404_2@ @H_404_2@Long@H_404_2@,lpOverlapped @H_404_2@As@H_404_2@ @H_404_2@Long@H_404_2@,lpCompletionRoutine @H_404_2@As@H_404_2@ @H_404_2@Long@H_404_2@) @H_404_2@As@H_404_2@ @H_404_2@Long@H_404_2@


Declare @H_404_2@Sub@H_404_2@ CopyMemory Lib @H_404_2@"@H_404_2@kernel32@H_404_2@"@H_404_2@ Alias @H_404_2@"@H_404_2@RtlMoveMemory@H_404_2@"@H_404_2@ (Destination @H_404_2@As@H_404_2@ Any,Source @H_404_2@As@H_404_2@ Any,ByVal length @H_404_2@As@H_404_2@ @H_404_2@Long@H_404_2@)

@H_404_2@Public@H_404_2@ Declare @H_404_2@Sub@H_404_2@ Sleep Lib @H_404_2@"@H_404_2@kernel32@H_404_2@"@H_404_2@ (ByVal dwMilliseconds @H_404_2@As@H_404_2@ @H_404_2@Long@H_404_2@)

@H_404_2@Public@H_404_2@ @H_404_2@Const@H_404_2@ WSADESCRIPTION_LEN @H_404_2@=@H_404_2@ @H_404_2@256@H_404_2@
@H_404_2@Public@H_404_2@ @H_404_2@Const@H_404_2@ WSASYS_STATUS_LEN @H_404_2@=@H_404_2@ @H_404_2@128@H_404_2@

Type WSA_DATA
wVersion @H_404_2@As@H_404_2@ @H_404_2@Integer@H_404_2@
wHighVersion @H_404_2@As@H_404_2@ @H_404_2@Integer@H_404_2@
strDescription(WSADESCRIPTION_LEN @H_404_2@+@H_404_2@ @H_404_2@1@H_404_2@) @H_404_2@As@H_404_2@ @H_404_2@Byte@H_404_2@
strSystemStatus(WSASYS_STATUS_LEN @H_404_2@+@H_404_2@ @H_404_2@1@H_404_2@) @H_404_2@As@H_404_2@ @H_404_2@Byte@H_404_2@
iMaxSockets @H_404_2@As@H_404_2@ @H_404_2@Integer@H_404_2@
iMaxUdpDg @H_404_2@As@H_404_2@ @H_404_2@Integer@H_404_2@
lpVendorInfo @H_404_2@As@H_404_2@ @H_404_2@Long@H_404_2@
@H_404_2@End@H_404_2@ Type

Type IN_ADDR
S_addr @H_404_2@As@H_404_2@ @H_404_2@Long@H_404_2@
@H_404_2@End@H_404_2@ Type

Type SOCK_ADDR
sin_family @H_404_2@As@H_404_2@ @H_404_2@Integer@H_404_2@
sin_port @H_404_2@As@H_404_2@ @H_404_2@Integer@H_404_2@
sin_addr @H_404_2@As@H_404_2@ IN_ADDR
sin_zero(@H_404_2@0@H_404_2@ @H_404_2@To@H_404_2@ @H_404_2@7@H_404_2@) @H_404_2@As@H_404_2@ @H_404_2@Byte@H_404_2@
@H_404_2@End@H_404_2@ Type


Type IPHeader
lenver @H_404_2@As@H_404_2@ @H_404_2@Byte@H_404_2@
tos @H_404_2@As@H_404_2@ @H_404_2@Byte@H_404_2@
@H_404_2@len@H_404_2@ @H_404_2@As@H_404_2@ @H_404_2@Integer@H_404_2@
ident @H_404_2@As@H_404_2@ @H_404_2@Integer@H_404_2@
flags @H_404_2@As@H_404_2@ @H_404_2@Integer@H_404_2@
ttl @H_404_2@As@H_404_2@ @H_404_2@Byte@H_404_2@
proto @H_404_2@As@H_404_2@ @H_404_2@Byte@H_404_2@
checksum @H_404_2@As@H_404_2@ @H_404_2@Integer@H_404_2@
sourceIP @H_404_2@As@H_404_2@ @H_404_2@Long@H_404_2@
destIP @H_404_2@As@H_404_2@ @H_404_2@Long@H_404_2@
@H_404_2@End@H_404_2@ Type

@H_404_2@Const@H_404_2@ AF_INET @H_404_2@=@H_404_2@ @H_404_2@2@H_404_2@
@H_404_2@Const@H_404_2@ SOCK_RAW @H_404_2@=@H_404_2@ @H_404_2@3@H_404_2@
@H_404_2@Const@H_404_2@ IPPROTO_IP @H_404_2@=@H_404_2@ @H_404_2@0@H_404_2@
@H_404_2@Const@H_404_2@ IPPROTO_TCP @H_404_2@=@H_404_2@ @H_404_2@6@H_404_2@
@H_404_2@Const@H_404_2@ IPPROTO_UDP @H_404_2@=@H_404_2@ @H_404_2@17@H_404_2@
@H_404_2@Const@H_404_2@ MAX_PACK_LEN @H_404_2@=@H_404_2@ @H_404_2@65535@H_404_2@
@H_404_2@Const@H_404_2@ SOCKET_ERROR @H_404_2@=@H_404_2@ @H_404_2@-@H_404_2@1@H_404_2@&@H_404_2@



@H_404_2@Private@H_404_2@ mwsaData @H_404_2@As@H_404_2@ WSA_DATA
@H_404_2@Private@H_404_2@ m_hSocket @H_404_2@As@H_404_2@ @H_404_2@Long@H_404_2@


@H_404_2@Private@H_404_2@ msaLocalAddr @H_404_2@As@H_404_2@ SOCK_ADDR

@H_404_2@Private@H_404_2@ msaRemoteAddr @H_404_2@As@H_404_2@ SOCK_ADDR


@H_404_2@Sub@H_404_2@ Main()
@H_404_2@Dim@H_404_2@ nResult @H_404_2@As@H_404_2@ @H_404_2@Long@H_404_2@

nResult @H_404_2@=@H_404_2@ WSAStartup(@H_404_2@&@H_404_2@H202,mwsaData)
@H_404_2@If@H_404_2@ nResult @H_404_2@<>@H_404_2@ WSANOERROR @H_404_2@Then@H_404_2@
MsgBox @H_404_2@"@H_404_2@Error en WSAStartup@H_404_2@"@H_404_2@
@H_404_2@Exit@H_404_2@ @H_404_2@Sub@H_404_2@
@H_404_2@End@H_404_2@ @H_404_2@If@H_404_2@

m_hSocket @H_404_2@=@H_404_2@ socket(AF_INET,SOCK_RAW,IPPROTO_IP)
@H_404_2@If@H_404_2@ (m_hSocket @H_404_2@=@H_404_2@ INVALID_SOCKET) @H_404_2@Then@H_404_2@
MsgBox @H_404_2@"@H_404_2@Error in socket@H_404_2@"@H_404_2@
@H_404_2@Exit@H_404_2@ @H_404_2@Sub@H_404_2@
@H_404_2@End@H_404_2@ @H_404_2@If@H_404_2@


msaLocalAddr.sin_family @H_404_2@=@H_404_2@ AF_INET
msaLocalAddr.sin_port @H_404_2@=@H_404_2@ @H_404_2@0@H_404_2@
msaLocalAddr.sin_addr.S_addr @H_404_2@=@H_404_2@ inet_addr(@H_404_2@"@H_404_2@192.168.1.71@H_404_2@"@H_404_2@) @H_404_2@'@H_404_2@这里需要你自己的网卡的IP地址@H_404_2@
@H_404_2@
nResult @H_404_2@=@H_404_2@ bind(m_hSocket,msaLocalAddr,@H_404_2@Len@H_404_2@(msaLocalAddr))
@H_404_2@If@H_404_2@ (nResult @H_404_2@=@H_404_2@ SOCKET_ERROR) @H_404_2@Then@H_404_2@
MsgBox @H_404_2@"@H_404_2@Error in bind@H_404_2@"@H_404_2@
@H_404_2@Exit@H_404_2@ @H_404_2@Sub@H_404_2@
@H_404_2@End@H_404_2@ @H_404_2@If@H_404_2@

@H_404_2@Dim@H_404_2@ InParamBuffer @H_404_2@As@H_404_2@ @H_404_2@Long@H_404_2@
@H_404_2@Dim@H_404_2@ BytesRet @H_404_2@As@H_404_2@ @H_404_2@Long@H_404_2@
BytesRet @H_404_2@=@H_404_2@ @H_404_2@0@H_404_2@
InParamBuffer @H_404_2@=@H_404_2@ @H_404_2@1@H_404_2@


nResult @H_404_2@=@H_404_2@ ioctlsocket(m_hSocket,@H_404_2@&@H_404_2@H98000001,@H_404_2@1@H_404_2@)


@H_404_2@If@H_404_2@ nResult @H_404_2@<>@H_404_2@ @H_404_2@0@H_404_2@ @H_404_2@Then@H_404_2@
MsgBox @H_404_2@"@H_404_2@ioctlsocket@H_404_2@"@H_404_2@
@H_404_2@Exit@H_404_2@ @H_404_2@Sub@H_404_2@
@H_404_2@End@H_404_2@ @H_404_2@If@H_404_2@


@H_404_2@Dim@H_404_2@ strData @H_404_2@As@H_404_2@ @H_404_2@String@H_404_2@
@H_404_2@Dim@H_404_2@ nReceived @H_404_2@As@H_404_2@ @H_404_2@Long@H_404_2@


@H_404_2@'@H_404_2@截获来的数据放在BUFF里面@H_404_2@
@H_404_2@ @H_404_2@Dim@H_404_2@ Buff(@H_404_2@0@H_404_2@ @H_404_2@To@H_404_2@ MAX_PACK_LEN) @H_404_2@As@H_404_2@ @H_404_2@Byte@H_404_2@
@H_404_2@Dim@H_404_2@ IPH @H_404_2@As@H_404_2@ IPHeader

@H_404_2@Do@H_404_2@ Until @H_404_2@False@H_404_2@ @H_404_2@'@H_404_2@这个例子里,一直获取@H_404_2@
@H_404_2@ DoEvents
nResult @H_404_2@=@H_404_2@ recv(m_hSocket,Buff(@H_404_2@0@H_404_2@),MAX_PACK_LEN,@H_404_2@0@H_404_2@)
@H_404_2@If@H_404_2@ nResult @H_404_2@=@H_404_2@ SOCKET_ERROR @H_404_2@Then@H_404_2@
MsgBox @H_404_2@"@H_404_2@Error in RecvData::recv@H_404_2@"@H_404_2@
@H_404_2@Exit@H_404_2@ @H_404_2@Do@H_404_2@
@H_404_2@End@H_404_2@ @H_404_2@If@H_404_2@
CopyMemory IPH,@H_404_2@Len@H_404_2@(IPH) @H_404_2@'@H_404_2@为了访问方便@H_404_2@
@H_404_2@ @H_404_2@Select@H_404_2@ @H_404_2@Case@H_404_2@ IPH.proto
@H_404_2@Case@H_404_2@ IPPROTO_TCP
@H_404_2@'@H_404_2@frmHookTcpip.Text1.SelText = HexIp2DotIp(IPH.sourceIP)@H_404_2@
@H_404_2@ @H_404_2@'@H_404_2@frmHookTcpip.Text1.SelText = " -----> "@H_404_2@
@H_404_2@ @H_404_2@'@H_404_2@frmHookTcpip.Text1.SelText = HexIp2DotIp(IPH.destIP)@H_404_2@
@H_404_2@ @H_404_2@'@H_404_2@frmHookTcpip.Text1.SelText = vbCrLf@H_404_2@
@H_404_2@ Debug.Print HexIp2DotIp(IPH.sourceIP) @H_404_2@&@H_404_2@ @H_404_2@"@H_404_2@ -----> @H_404_2@"@H_404_2@ @H_404_2@&@H_404_2@ HexIp2DotIp(IPH.destIP)
@H_404_2@End@H_404_2@ @H_404_2@Select@H_404_2@
@H_404_2@Loop@H_404_2@

nResult @H_404_2@=@H_404_2@ shutdown(m_hSocket,@H_404_2@2@H_404_2@)
nResult @H_404_2@=@H_404_2@ closesocket(m_hSocket)
nResult @H_404_2@=@H_404_2@ WSACancelBlockingCall
nResult @H_404_2@=@H_404_2@ WSACleanup
@H_404_2@End Sub@H_404_2@


@H_404_2@Function@H_404_2@ HexIp2DotIp(ByVal ip @H_404_2@As@H_404_2@ @H_404_2@Long@H_404_2@) @H_404_2@As@H_404_2@ @H_404_2@String@H_404_2@
@H_404_2@Dim@H_404_2@ s @H_404_2@As@H_404_2@ @H_404_2@String@H_404_2@,p1 @H_404_2@As@H_404_2@ @H_404_2@String@H_404_2@,p2 @H_404_2@As@H_404_2@ @H_404_2@String@H_404_2@,p3 @H_404_2@As@H_404_2@ @H_404_2@String@H_404_2@,p4 @H_404_2@As@H_404_2@ @H_404_2@String@H_404_2@
s @H_404_2@=@H_404_2@ @H_404_2@Right@H_404_2@(@H_404_2@"@H_404_2@00000000@H_404_2@"@H_404_2@ @H_404_2@&@H_404_2@ Hex(ip),@H_404_2@8@H_404_2@)
p1 @H_404_2@=@H_404_2@ Val(@H_404_2@"@H_404_2@&h@H_404_2@"@H_404_2@ @H_404_2@&@H_404_2@ @H_404_2@Mid@H_404_2@(s,@H_404_2@1@H_404_2@,@H_404_2@2@H_404_2@))
p2 @H_404_2@=@H_404_2@ Val(@H_404_2@"@H_404_2@&h@H_404_2@"@H_404_2@ @H_404_2@&@H_404_2@ @H_404_2@Mid@H_404_2@(s,@H_404_2@3@H_404_2@,@H_404_2@2@H_404_2@))
p3 @H_404_2@=@H_404_2@ Val(@H_404_2@"@H_404_2@&h@H_404_2@"@H_404_2@ @H_404_2@&@H_404_2@ @H_404_2@Mid@H_404_2@(s,@H_404_2@5@H_404_2@,@H_404_2@2@H_404_2@))
p4 @H_404_2@=@H_404_2@ Val(@H_404_2@"@H_404_2@&h@H_404_2@"@H_404_2@ @H_404_2@&@H_404_2@ @H_404_2@Mid@H_404_2@(s,@H_404_2@7@H_404_2@,@H_404_2@2@H_404_2@))
HexIp2DotIp @H_404_2@=@H_404_2@ p4 @H_404_2@&@H_404_2@ @H_404_2@"@H_404_2@.@H_404_2@"@H_404_2@ @H_404_2@&@H_404_2@ p3 @H_404_2@&@H_404_2@ @H_404_2@"@H_404_2@.@H_404_2@"@H_404_2@ @H_404_2@&@H_404_2@ p2 @H_404_2@&@H_404_2@ @H_404_2@"@H_404_2@.@H_404_2@"@H_404_2@ @H_404_2@&@H_404_2@ p1
@H_404_2@End Function@H_404_2@

猜你在找的VB相关文章