VB IGMP

王朝vb·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

Option Explicit

'*******************IGMP************************

Private Type SockAddr

sin_family As Integer

sin_port As Integer

sin_addr As String * 4

sin_zero As String * 8

End Type

Private Type T_WSA

wVersion As Integer

wHighVersion As Integer

szDescription(0 To 255) As Byte

szSystemStatus(0 To 128) As Byte

iMaxSockets As Integer

iMaxUdpDg As Integer

lpVendorInfo As Long

End Type

Private Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" (Dest As Any, Src As Any, ByVal cb&)

Private Declare Function inet_addr Lib "wsock32.dll" (ByVal addr As String) As Long

Private Declare Function WSAStartup Lib "wsock32.dll" (ByVal a As Long, b As T_WSA) As Long

Private Declare Function WSACleanUp Lib "wsock32.dll" Alias "WSACleanup" () As Integer

Private Declare Function Socket Lib "wsock32.dll" Alias "socket" (ByVal afinet As Integer, ByVal socktype As Integer, ByVal protocol As Integer) As Long

Private Declare Function ConnectWinsock Lib "wsock32.dll" Alias "connect" (ByVal sock As Long, sockstruct As SockAddr, ByVal structlen As Integer) As Integer

Private Declare Function send Lib "wsock32.dll" (ByVal sock As Long, ByVal msg As String, ByVal msglen As Long, ByVal flag As Integer) As Long

Private Declare Function htons Lib "wsock32.dll" (ByVal a As Integer) As Integer

Private Declare Function closesocket Lib "wsock32.dll" (ByVal sn As Long) As Integer

Private sock As Long

Private t As Long

Private Sub cmd_Go_Click()

If t > 0 Then

t = 0

Else

Dim addr As SockAddr

Dim x As Long

Dim ip As String

Dim y(0 To 3) As Byte

ip = ""

x = inet_addr(txt_IP.Text)

CopyMemory y(0), x, 4

For x = 0 To 3

ip = ip & Chr(y(x))

Next x

addr.sin_addr = ip

addr.sin_family = 2

addr.sin_port = htons(100)

addr.sin_zero = String(8, 0)

If ConnectWinsock(sock, addr, Len(addr)) Then

MsgBox "connect error"

Exit Sub

End If

t = 10

Set cmd_Go.Picture = Image1.Picture

Timer1.Enabled = True

End If

End Sub

Private Sub Form_Load()

Dim WSAData As T_WSA

Set cmd_Go.Picture = Image2.Picture

WSAStartup 514, WSAData

sock = Socket(2, 3, 2)

If sock < 0 Then

MsgBox "winsock error"

Unload Me

End If

t = 0

End Sub

Private Sub Form_Unload(Cancel As Integer)

closesocket sock

WSACleanUp

End Sub

Private Sub Timer1_Timer()

If t Then

send sock, String(60000, "0"), 60000, 0

t = t - 1

Else

Timer1.Enabled = False

Set cmd_Go.Picture = Image2.Picture

End If

End Sub

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航