--- projects/cms/source/host/winhost/nettest.frm 2001/02/23 10:34:47 1.5 +++ projects/cms/source/host/winhost/nettest.frm 2001/02/23 13:23:53 1.13 @@ -1,84 +1,117 @@ VERSION 5.00 Object = "{248DD890-BB45-11CF-9ABC-0080C7E7B78D}#1.0#0"; "MSWINSCK.OCX" +Object = "{33155A3D-0CE0-11D1-A6B4-444553540000}#1.0#0"; "SysTray.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 - ClientWidth = 5670 + ClientTop = 285 + ClientWidth = 4710 LinkTopic = "Form1" MaxButton = 0 'False - MinButton = 0 'False ScaleHeight = 5655 - ScaleWidth = 5670 + ScaleWidth = 4710 ShowInTaskbar = 0 'False StartUpPosition = 3 'Windows Default - Begin VB.CommandButton Command3 - Caption = "TCP to Filter" + Begin VB.CommandButton Hide + Caption = "Hide Window" Height = 375 - Left = 3720 - TabIndex = 5 - Top = 2520 - Width = 1575 + Left = 3120 + TabIndex = 7 + Top = 840 + Width = 1455 End + Begin SysTray.SystemTray SystemTray + Left = 2160 + Top = 1800 + _ExtentX = 847 + _ExtentY = 847 + SysTrayText = "i-scream Winhost" + IconFile = 0 + End + Begin VB.Timer Timer1 + Left = 2760 + Top = 1800 + 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 + Width = 3975 End - Begin VB.CommandButton Command2 - Caption = "TCP to FilterManager" + Begin VB.CommandButton Reconfigure + Caption = "Reconfigure with FilterManager" Height = 375 - Left = 3360 - TabIndex = 3 - Top = 2040 - Width = 1935 + Left = 120 + TabIndex = 0 + Top = 840 + Width = 2895 End Begin MSWinsockLib.Winsock TCPSock - Left = 4920 - Top = 120 + Left = 3720 + Top = 1800 _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 UDPSock - Left = 4320 - Top = 120 + Left = 3240 + Top = 1800 _ExtentX = 741 _ExtentY = 741 _Version = 393216 Protocol = 1 End + Begin VB.Label Label2 + Alignment = 1 'Right Justify + Caption = "Next heartbeat:" + Height = 255 + Left = 2400 + 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 = 2400 + TabIndex = 5 + Top = 120 + Width = 1455 End + Begin VB.Label Label4 + BorderStyle = 1 'Fixed Single + Caption = "0" + Height = 255 + Left = 3960 + TabIndex = 4 + Top = 480 + Width = 615 + End + Begin VB.Label Label3 + BorderStyle = 1 'Fixed Single + Caption = "0" + Height = 255 + Left = 3960 + TabIndex = 3 + Top = 120 + Width = 615 + End + Begin VB.Label Status + Alignment = 2 'Center + Caption = "Status:" + Height = 255 + Left = 120 + TabIndex = 2 + Top = 1320 + Width = 4455 + End End Attribute VB_Name = "Form1" Attribute VB_GlobalNameSpace = False @@ -91,52 +124,36 @@ Private Declare Function GetPrivateProfileInt Lib "ker Dim filterManagerHostname As String Dim filterManagerTCPPort As Integer +Dim seqNo As Long +Dim machineName As String + Dim filterHostname As String Dim filterTCPPort As Integer 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 - -Private Sub Command1_Click() - - ' 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 - -End Sub - -Private Sub Command2_Click() - - ' establish a TCP connection to a filtermanager - TCPSock.Close - TCPSock.Connect filterManagerHostname, filterManagerTCPPort - -End Sub - -Private Sub Command3_Click() - ' establish a TCP connection to a filter - TCPSock.Close - TCPSock.Connect filterHostname, filterTCPPort -End Sub - Private Sub Form_Load() + x = MsgBox(Date2Num()) + protocolVersion = "1.1" + Status.Caption = "Loading" + Form1.Caption = "i-scream Winhost " & protocolVersion + ''''TEMP filterManagerHostname = "killigrew.ukc.ac.uk" filterManagerTCPPort = 4567 - Exit Sub - ''' ENDTEMP + ''''' END TEMP + GoTo skip On Error GoTo iniError Dim buf As String * 256 Dim length As Long @@ -144,6 +161,10 @@ Private Sub Form_Load() filterManagerHostname = Left$(buf, length) length = GetPrivateProfileString("i-scream Winhost", "FilterManagerPort", "", buf, Len(buf), App.Path & "winhost.ini") filterManagerTCPPort = Left$(buf, length) +skip: + + Status.Caption = "Connecting to Filter Manager" + Reconfigure_Click Exit Sub @@ -153,9 +174,42 @@ iniError: End Sub +Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) + x = MsgBox("Are you sure you want to shut down the Winhost? This will stop your computer sending information to the i-scream Central Monitoring System.", vbYesNo, "i-scream Winhost") + If x = 7 Then + Cancel = True + End If + SystemTray.Action = 2 + +End Sub + +Private Sub Hide_Click() + Form1.Visible = False + SystemTray.Icon = Val(Form1.Icon) + SystemTray.Action = 0 +End Sub + +Private Sub Reconfigure_Click() + ' establish a TCP connection to a filtermanager + connected = False + TCPSock.Close + TCPSock.Connect filterManagerHostname, filterManagerTCPPort +End Sub + + + +Private Sub SystemTray_MouseDblClk(ByVal Button As Integer) + + Form1.Visible = True + SystemTray.Action = 2 + Form1.SetFocus + + +End Sub + Private Sub TCPSock_Connect() - - responseNumber = 0 + + responseNumber = 0 ' Send something as soon as we connect to the server. If connected = False Then @@ -197,9 +251,11 @@ Private Sub TCPSock_DataArrival(ByVal bytesTotal As Lo TCPSock.SendData "UDPUpdateTime" & vbCrLf Case 4: If response = "ERROR" Then GoTo configError + UDPUpdateTime = response TCPSock.SendData "TCPUpdateTime" & vbCrLf Case 5: If response = "ERROR" Then GoTo configError + TCPUpdateTime = response TCPSock.SendData "ENDCONFIG" & vbCrLf Case 6: If Not response = "OK" Then GoTo configError @@ -224,7 +280,10 @@ Private Sub TCPSock_DataArrival(ByVal bytesTotal As Lo responseNumber = 0 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) @@ -245,7 +304,7 @@ Private Sub TCPSock_DataArrival(ByVal bytesTotal As Lo Case 5: If Not response = "OK" Then GoTo heartbeatError TCPSock.Close - x = MsgBox("heartbeat sent okay.") + Status.Caption = "Heartbeat sent successfully." End Select End If @@ -254,8 +313,61 @@ Private Sub TCPSock_DataArrival(ByVal bytesTotal As Lo 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. + localIP = TCPSock.localIP + machineName = TCPSock.LocalHostName + seqNo = seqNo + 1 + packetDate = Now() + xml = "" & _ + "" & _ + "" & _ + "" & _ + "" & _ + "" & _ + "" & _ + "" & _ + "" & _ + "" & _ + "" & _ + "" & _ + "" & _ + "" & _ + "" & _ + "" + Text4.Text = Text4.Text + 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 + +Function Date2Num() As Long + Date2Num = DateDiff("s", "1-1-1970", Now) +End Function