--- experimental/host/vb_net_test/nettest.frm 2001/02/23 10:07:55 1.3
+++ experimental/host/vb_net_test/nettest.frm 2001/02/23 11:30:25 1.9
@@ -14,20 +14,24 @@ Begin VB.Form Form1
ScaleWidth = 5670
ShowInTaskbar = 0 'False
StartUpPosition = 3 'Windows Default
+ Begin VB.Timer Timer1
+ Left = 3840
+ Top = 120
+ End
Begin VB.CommandButton Command3
Caption = "TCP to Filter"
Height = 375
Left = 3720
- TabIndex = 9
+ TabIndex = 3
Top = 2520
Width = 1575
End
Begin VB.TextBox Text4
- Height = 2535
+ Height = 1575
Left = 240
MultiLine = -1 'True
ScrollBars = 2 'Vertical
- TabIndex = 8
+ TabIndex = 2
Text = "nettest.frx":0000
Top = 3000
Width = 5055
@@ -36,50 +40,26 @@ Begin VB.Form Form1
Caption = "TCP to FilterManager"
Height = 375
Left = 3360
- TabIndex = 7
+ TabIndex = 1
Top = 2040
Width = 1935
End
- Begin MSWinsockLib.Winsock Winsock2
+ Begin MSWinsockLib.Winsock TCPSock
Left = 4920
Top = 120
_ExtentX = 741
_ExtentY = 741
_Version = 393216
End
- Begin VB.TextBox Text3
- Height = 285
- Left = 1680
- TabIndex = 5
- Text = "killigrew.ukc.ac.uk"
- Top = 1560
- Width = 2535
- End
- Begin VB.TextBox Text2
- Height = 285
- Left = 1680
- TabIndex = 3
- Text = "4567"
- Top = 1920
- Width = 855
- End
Begin VB.CommandButton Command1
Caption = "Send UDP"
Height = 375
Left = 4320
- TabIndex = 2
+ TabIndex = 0
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
+ Begin MSWinsockLib.Winsock UDPSock
Left = 4320
Top = 120
_ExtentX = 741
@@ -87,44 +67,69 @@ Begin VB.Form Form1
_Version = 393216
Protocol = 1
End
- Begin VB.Label Label3
+ Begin VB.Label Label2
Alignment = 1 'Right Justify
- Caption = "Destination:"
+ Caption = "Next heartbeat:"
Height = 255
- Left = 360
- TabIndex = 6
- Top = 1560
- Width = 1215
+ Left = 120
+ TabIndex = 8
+ Top = 480
+ Width = 1455
End
- Begin VB.Label Label2
+ Begin VB.Label Label1
Alignment = 1 'Right Justify
- Caption = "Port:"
+ Caption = "Next UDP packet:"
Height = 255
- Left = 360
- TabIndex = 4
- Top = 1920
- Width = 1215
+ Left = 120
+ TabIndex = 7
+ Top = 120
+ Width = 1455
End
- Begin VB.Label Label1
- Caption = "Packet contents"
+ Begin VB.Label Label4
+ Caption = "0"
Height = 255
- Left = 360
- TabIndex = 1
- Top = 360
- Width = 2895
+ Left = 1680
+ TabIndex = 6
+ Top = 480
+ Width = 615
End
+ Begin VB.Label Label3
+ Caption = "0"
+ Height = 255
+ Left = 1680
+ TabIndex = 5
+ Top = 120
+ Width = 615
+ End
+ Begin VB.Label Status
+ Caption = "Status:"
+ Height = 255
+ Left = 120
+ TabIndex = 4
+ Top = 5280
+ Width = 5415
+ End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
+Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
+Private Declare Function GetPrivateProfileInt Lib "kernel32" Alias "GetPrivateProfileIntA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal nDefault As Long, ByVal lpFileName As String) As Long
+
+Dim filterManagerHostname As String
+Dim filterManagerTCPPort As Integer
+
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
@@ -132,52 +137,81 @@ 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 = Text3.Text
- Winsock1.RemotePort = Text2.Text
- Winsock1.SendData Text1.Text
+ 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 Text3.Text, Text2.Text
+ TCPSock.Close
+ TCPSock.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 = "i-scream Winhost " & protocolVersion
+
+ ''''TEMP
+ filterManagerHostname = "killigrew.ukc.ac.uk"
+ filterManagerTCPPort = 4567
+ Exit Sub
+ ''' ENDTEMP
+
+ On Error GoTo iniError
+ Dim buf As String * 256
+ Dim length As Long
+ length = GetPrivateProfileString("i-scream Winhost", "FilterManager", "", buf, Len(buf), App.Path & "winhost.ini")
+ filterManagerHostname = Left$(buf, length)
+ length = GetPrivateProfileString("i-scream Winhost", "FilterManagerPort", "", buf, Len(buf), App.Path & "winhost.ini")
+ filterManagerTCPPort = Left$(buf, length)
+
+ Status.Caption = "i-scream Winhost " & protocolVersion & " connecting to Filter Manager"
+
+ Exit Sub
+
+iniError:
+ x = MsgBox("The i-scream Winhost could not read the correct settings from the winhost.ini file. Please correct these and try again.", 48, "Configuration not found")
+ End
+
End Sub
-Private Sub Winsock2_Connect()
-
- responseNumber = 0
+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), "")
@@ -190,24 +224,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
@@ -221,14 +257,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 = "i-scream Winhost " & protocolVersion & " - got config okay"
+ Label3.Caption = UDPUpdateTime
+ Label4.Caption = TCPUpdateTime
+ Timer1.Interval = 1000
End Select
Else
' Perform a heartbeat (1.1)
@@ -236,20 +275,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 = "i-scream Winhost " & protocolVersion & " - heartbeat sent okay."
End Select
End If
@@ -258,7 +297,58 @@ Private Sub Winsock2_DataArrival(ByVal bytesTotal As L
Exit Sub
configError:
- x = MsgBox("error doing configuration")
+ Status.Caption = "i-scream Winhost " & protocolVersion & " - FAILED to get configuration " & Err.Description
+ Exit Sub
heartbeatError:
+ Status.Caption = "i-scream Winhost " & protocolVersion & " - Heatbeat FAILED " & Err.Description
+ Exit Sub
+End Sub
+
+Private Sub TCPTimer_Timer()
+ ' establish a TCP connection to a filter
+ TCPSock.Close
+ TCPSock.Connect filterHostname, filterTCPPort
+
+End Sub
+
+Private Sub UDPTimer_Timer()
+
+ ' 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 = "i-scream Winhost " & protocolVersion & " - UDP packet sent."
+
+End Sub
+
+Private Sub Timer1_Timer()
+
+ Label3.Caption = Label3.Caption - 1
+ Label4.Caption = Label4.Caption - 1
+
+ Status.Caption = "i-scream Winhost " & protocolVersion
+
+ 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 = "i-scream Winhost " & protocolVersion & " - 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