--- experimental/host/vb_net_test/nettest.frm 2001/02/23 10:29:16 1.4 +++ experimental/host/vb_net_test/nettest.frm 2001/02/23 11:42:06 1.10 @@ -1,11 +1,11 @@ VERSION 5.00 Object = "{248DD890-BB45-11CF-9ABC-0080C7E7B78D}#1.0#0"; "MSWINSCK.OCX" Begin VB.Form Form1 - BorderStyle = 3 'Fixed Dialog - Caption = "TCP/UDP Test program" + BorderStyle = 4 'Fixed ToolWindow + Caption = "i-scream Winhost" ClientHeight = 5655 ClientLeft = 45 - ClientTop = 330 + ClientTop = 285 ClientWidth = 5670 LinkTopic = "Form1" MaxButton = 0 'False @@ -14,71 +14,87 @@ Begin VB.Form Form1 ScaleWidth = 5670 ShowInTaskbar = 0 'False StartUpPosition = 3 'Windows Default - Begin VB.CommandButton Command3 - Caption = "TCP to Filter" - Height = 375 - Left = 3720 - TabIndex = 5 - Top = 2520 - Width = 1575 + Begin VB.Timer Timer1 + Left = 4200 + Top = 1200 End Begin VB.TextBox Text4 - Height = 2535 + Height = 1575 Left = 240 MultiLine = -1 'True ScrollBars = 2 'Vertical - TabIndex = 4 + TabIndex = 1 Text = "nettest.frx":0000 Top = 3000 Width = 5055 End - Begin VB.CommandButton Command2 - Caption = "TCP to FilterManager" - Height = 375 - Left = 3360 - TabIndex = 3 - Top = 2040 - Width = 1935 - End - Begin MSWinsockLib.Winsock Winsock2 - Left = 4920 + Begin VB.CommandButton Reconfigure + Caption = "Reconfigure with FilterManager" + Height = 495 + Left = 120 + TabIndex = 0 Top = 120 + Width = 2895 + End + Begin MSWinsockLib.Winsock TCPSock + Left = 5160 + Top = 1200 _ExtentX = 741 _ExtentY = 741 _Version = 393216 End - Begin VB.CommandButton Command1 - Caption = "Send UDP" - Height = 375 - Left = 4320 - TabIndex = 2 - Top = 1560 - Width = 975 - End - Begin VB.TextBox Text1 - Height = 855 - Left = 360 - TabIndex = 0 - Text = "" - Top = 600 - Width = 4935 - End - Begin MSWinsockLib.Winsock Winsock1 - Left = 4320 - Top = 120 + Begin MSWinsockLib.Winsock UDPSock + Left = 4680 + Top = 1200 _ExtentX = 741 _ExtentY = 741 _Version = 393216 Protocol = 1 End + Begin VB.Label Label2 + Alignment = 1 'Right Justify + Caption = "Next heartbeat:" + Height = 255 + Left = 3360 + TabIndex = 6 + Top = 480 + Width = 1455 + End Begin VB.Label Label1 - Caption = "Packet contents" + Alignment = 1 'Right Justify + Caption = "Next UDP packet:" Height = 255 - Left = 360 - TabIndex = 1 - Top = 360 - Width = 2895 + Left = 3360 + TabIndex = 5 + Top = 120 + Width = 1455 End + Begin VB.Label Label4 + BorderStyle = 1 'Fixed Single + Caption = "0" + Height = 255 + Left = 4920 + TabIndex = 4 + Top = 480 + Width = 615 + End + Begin VB.Label Label3 + BorderStyle = 1 'Fixed Single + Caption = "0" + Height = 255 + Left = 4920 + TabIndex = 3 + Top = 120 + Width = 615 + End + Begin VB.Label Status + Caption = "Status:" + Height = 255 + Left = 120 + TabIndex = 2 + Top = 840 + Width = 5415 + End End Attribute VB_Name = "Form1" Attribute VB_GlobalNameSpace = False @@ -97,6 +113,9 @@ Dim filterUDPPort As Integer Dim fileList As String Dim lastModified As String +Dim UDPUpdateTime As Integer +Dim TCPUpdateTime As Integer + Dim protocolVersion As String Dim connected As Boolean Dim responseNumber As Integer @@ -104,35 +123,34 @@ Dim responseNumber As Integer Private Sub Command1_Click() + ' build the contents of the XML packet. xml = "" ' Use the first winsock control to send a UDP packet. - Winsock1.RemoteHost = filterHostname - Winsock1.RemotePort = filterUDPPort - Winsock1.SendData xml + UDPSock.RemoteHost = filterHostname + UDPSock.RemotePort = filterUDPPort + UDPSock.SendData xml + Status.Caption = "i-scream Winhost " & protocolVersion & " - UDP packet sent." End Sub -Private Sub Command2_Click() - - ' establish a TCP connection to a filtermanager - Winsock2.Close - Winsock2.Connect filterManagerHostname, filterManagerTCPPort -End Sub - Private Sub Command3_Click() ' establish a TCP connection to a filter - Winsock2.Close - Winsock2.Connect filterHostname, filterTCPPort + TCPSock.Close + TCPSock.Connect filterHostname, filterTCPPort End Sub Private Sub Form_Load() protocolVersion = "1.1" + + Status.Caption = "Loading" + Form1.Caption = "i-scream Winhost " & protocolVersion ''''TEMP filterManagerHostname = "killigrew.ukc.ac.uk" filterManagerTCPPort = 4567 + Reconfigure_Click Exit Sub ''' ENDTEMP @@ -144,6 +162,8 @@ Private Sub Form_Load() length = GetPrivateProfileString("i-scream Winhost", "FilterManagerPort", "", buf, Len(buf), App.Path & "winhost.ini") filterManagerTCPPort = Left$(buf, length) + Status.Caption = "Connecting to Filter Manager" + Exit Sub iniError: @@ -152,31 +172,42 @@ iniError: End Sub -Private Sub Label2_Click() +Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) + x = MsgBox("Are you sure you want to shut down the Winhost?", vbYesNo, "i-scream Winhost") + If x = 7 Then + Cancel = True + End If End Sub -Private Sub Winsock2_Connect() - - responseNumber = 0 +Private Sub Reconfigure_Click() + ' establish a TCP connection to a filtermanager + connected = False + TCPSock.Close + TCPSock.Connect filterManagerHostname, filterManagerTCPPort +End Sub + +Private Sub TCPSock_Connect() + + responseNumber = 0 ' Send something as soon as we connect to the server. If connected = False Then ' contact the FilterManager - Winsock2.SendData "STARTCONFIG" & vbCrLf + TCPSock.SendData "STARTCONFIG" & vbCrLf Else ' Contact the Filter - Winsock2.SendData "HEARTBEAT" & vbCrLf + TCPSock.SendData "HEARTBEAT" & vbCrLf End If End Sub -Private Sub Winsock2_DataArrival(ByVal bytesTotal As Long) +Private Sub TCPSock_DataArrival(ByVal bytesTotal As Long) responseNumber = responseNumber + 1 ' Get the line from the server. - Winsock2.GetData response, vbString, bytesTotal + TCPSock.GetData response, vbString, bytesTotal ' Remove linefeeds and returns from the line. response = Replace(response, Chr(13), "") @@ -189,24 +220,26 @@ Private Sub Winsock2_DataArrival(ByVal bytesTotal As L Select Case responseNumber Case 1: If Not response = "OK" Then GoTo configError - Winsock2.SendData "LASTMODIFIED" & vbCrLf + TCPSock.SendData "LASTMODIFIED" & vbCrLf Case 2: If response = "ERROR" Then GoTo configError lastModified = response - Winsock2.SendData "FILELIST" & vbCrLf + TCPSock.SendData "FILELIST" & vbCrLf Case 3: If response = "ERROR" Then GoTo configError fileList = response - Winsock2.SendData "UDPUpdateTime" & vbCrLf + TCPSock.SendData "UDPUpdateTime" & vbCrLf Case 4: If response = "ERROR" Then GoTo configError - Winsock2.SendData "TCPUpdateTime" & vbCrLf + UDPUpdateTime = response + TCPSock.SendData "TCPUpdateTime" & vbCrLf Case 5: If response = "ERROR" Then GoTo configError - Winsock2.SendData "ENDCONFIG" & vbCrLf + TCPUpdateTime = response + TCPSock.SendData "ENDCONFIG" & vbCrLf Case 6: If Not response = "OK" Then GoTo configError - Winsock2.SendData "FILTER" & vbCrLf + TCPSock.SendData "FILTER" & vbCrLf Case 7: 'we got a filter list here. readTo = 0 @@ -220,14 +253,17 @@ Private Sub Winsock2_DataArrival(ByVal bytesTotal As L response = Mid(response, readTo + 1, Len(response)) ' get TCP Port number filterTCPPort = response - Winsock2.SendData "END" & vbCrLf + TCPSock.SendData "END" & vbCrLf Case 8: If Not response = "OK" Then GoTo configError connected = True responseNumber = 0 - Winsock2.Close + TCPSock.Close Text4.Text = Text4.Text & vbCrLf & " " - x = MsgBox("got config okay") + Status.Caption = "Configuration successful" + Label3.Caption = UDPUpdateTime + Label4.Caption = TCPUpdateTime + Timer1.Interval = 1000 End Select Else ' Perform a heartbeat (1.1) @@ -235,20 +271,20 @@ Private Sub Winsock2_DataArrival(ByVal bytesTotal As L Select Case responseNumber Case 1: If Not response = "OK" Then GoTo heartbeatError - Winsock2.SendData "CONFIG" & vbCrLf + TCPSock.SendData "CONFIG" & vbCrLf Case 2: If Not response = "OK" Then GoTo heartbeatError - Winsock2.SendData fileList & vbCrLf + TCPSock.SendData fileList & vbCrLf Case 3: If Not response = "OK" Then GoTo heartbeatError - Winsock2.SendData lastModified & vbCrLf + TCPSock.SendData lastModified & vbCrLf Case 4: If Not response = "OK" Then GoTo heartbeatError - Winsock2.SendData "ENDHEARTBEAT" & vbCrLf + TCPSock.SendData "ENDHEARTBEAT" & vbCrLf Case 5: If Not response = "OK" Then GoTo heartbeatError - Winsock2.Close - x = MsgBox("heartbeat sent okay.") + TCPSock.Close + Status.Caption = "Heartbeat sent successfully." End Select End If @@ -257,7 +293,37 @@ Private Sub Winsock2_DataArrival(ByVal bytesTotal As L Exit Sub configError: - x = MsgBox("error doing configuration") + Status.Caption = "FAILED to get configuration" + Exit Sub heartbeatError: - x = MsgBox("error doing configuration") + Status.Caption = "Heatbeat FAILED" + Exit Sub +End Sub + +Private Sub Timer1_Timer() + + Label3.Caption = Label3.Caption - 1 + Label4.Caption = Label4.Caption - 1 + + Status.Caption = "" + + If Label3.Caption < 1 Then + ' build the contents of the XML packet. + xml = "" + + ' Use the first winsock control to send a UDP packet. + UDPSock.RemoteHost = filterHostname + UDPSock.RemotePort = filterUDPPort + UDPSock.SendData xml + Status.Caption = "UDP packet sent" + Label3.Caption = UDPUpdateTime + End If + + If Label4.Caption < 1 Then + ' establish a TCP connection to a filter + TCPSock.Close + TCPSock.Connect filterHostname, filterTCPPort + Label4.Caption = TCPUpdateTime + End If + End Sub