ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/projects/cms/source/host/winhost/nettest.frm
Revision: 1.4
Committed: Fri Feb 23 10:29:16 2001 UTC (23 years, 9 months ago) by pjm2
Branch: MAIN
Changes since 1.3: +41 -42 lines
Log Message:
Fully working with all parts of the 1.1 host -> server TCP spec.
UDP is working, but packet contents not defined yet.

File Contents

# User Rev Content
1 pjm2 1.1 VERSION 5.00
2     Object = "{248DD890-BB45-11CF-9ABC-0080C7E7B78D}#1.0#0"; "MSWINSCK.OCX"
3     Begin VB.Form Form1
4     BorderStyle = 3 'Fixed Dialog
5     Caption = "TCP/UDP Test program"
6     ClientHeight = 5655
7     ClientLeft = 45
8     ClientTop = 330
9     ClientWidth = 5670
10     LinkTopic = "Form1"
11     MaxButton = 0 'False
12     MinButton = 0 'False
13     ScaleHeight = 5655
14     ScaleWidth = 5670
15     ShowInTaskbar = 0 'False
16     StartUpPosition = 3 'Windows Default
17     Begin VB.CommandButton Command3
18     Caption = "TCP to Filter"
19     Height = 375
20     Left = 3720
21 pjm2 1.4 TabIndex = 5
22 pjm2 1.1 Top = 2520
23     Width = 1575
24     End
25     Begin VB.TextBox Text4
26     Height = 2535
27     Left = 240
28     MultiLine = -1 'True
29     ScrollBars = 2 'Vertical
30 pjm2 1.4 TabIndex = 4
31 pjm2 1.1 Text = "nettest.frx":0000
32     Top = 3000
33     Width = 5055
34     End
35     Begin VB.CommandButton Command2
36     Caption = "TCP to FilterManager"
37     Height = 375
38     Left = 3360
39 pjm2 1.4 TabIndex = 3
40 pjm2 1.1 Top = 2040
41     Width = 1935
42     End
43     Begin MSWinsockLib.Winsock Winsock2
44     Left = 4920
45     Top = 120
46     _ExtentX = 741
47     _ExtentY = 741
48     _Version = 393216
49     End
50     Begin VB.CommandButton Command1
51     Caption = "Send UDP"
52     Height = 375
53     Left = 4320
54     TabIndex = 2
55     Top = 1560
56     Width = 975
57     End
58     Begin VB.TextBox Text1
59     Height = 855
60     Left = 360
61     TabIndex = 0
62     Text = "<packet></packet>"
63     Top = 600
64     Width = 4935
65     End
66     Begin MSWinsockLib.Winsock Winsock1
67     Left = 4320
68     Top = 120
69     _ExtentX = 741
70     _ExtentY = 741
71     _Version = 393216
72     Protocol = 1
73     End
74     Begin VB.Label Label1
75     Caption = "Packet contents"
76     Height = 255
77     Left = 360
78     TabIndex = 1
79     Top = 360
80     Width = 2895
81     End
82     End
83     Attribute VB_Name = "Form1"
84     Attribute VB_GlobalNameSpace = False
85     Attribute VB_Creatable = False
86     Attribute VB_PredeclaredId = True
87     Attribute VB_Exposed = False
88 pjm2 1.4 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
89     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
90    
91     Dim filterManagerHostname As String
92     Dim filterManagerTCPPort As Integer
93    
94 pjm2 1.2 Dim filterHostname As String
95 pjm2 1.3 Dim filterTCPPort As Integer
96     Dim filterUDPPort As Integer
97     Dim fileList As String
98     Dim lastModified As String
99 pjm2 1.2
100     Dim protocolVersion As String
101     Dim connected As Boolean
102 pjm2 1.1 Dim responseNumber As Integer
103    
104    
105     Private Sub Command1_Click()
106    
107 pjm2 1.4 xml = "<packet></packet>"
108    
109 pjm2 1.2 ' Use the first winsock control to send a UDP packet.
110 pjm2 1.4 Winsock1.RemoteHost = filterHostname
111     Winsock1.RemotePort = filterUDPPort
112     Winsock1.SendData xml
113 pjm2 1.1
114     End Sub
115    
116     Private Sub Command2_Click()
117    
118 pjm2 1.3 ' establish a TCP connection to a filtermanager
119 pjm2 1.1 Winsock2.Close
120 pjm2 1.4 Winsock2.Connect filterManagerHostname, filterManagerTCPPort
121 pjm2 1.1
122     End Sub
123    
124     Private Sub Command3_Click()
125 pjm2 1.3 ' establish a TCP connection to a filter
126     Winsock2.Close
127     Winsock2.Connect filterHostname, filterTCPPort
128 pjm2 1.1 End Sub
129    
130 pjm2 1.2 Private Sub Form_Load()
131     protocolVersion = "1.1"
132 pjm2 1.4
133     ''''TEMP
134     filterManagerHostname = "killigrew.ukc.ac.uk"
135     filterManagerTCPPort = 4567
136     Exit Sub
137     ''' ENDTEMP
138    
139     On Error GoTo iniError
140     Dim buf As String * 256
141     Dim length As Long
142     length = GetPrivateProfileString("i-scream Winhost", "FilterManager", "<no value>", buf, Len(buf), App.Path & "winhost.ini")
143     filterManagerHostname = Left$(buf, length)
144     length = GetPrivateProfileString("i-scream Winhost", "FilterManagerPort", "<no value>", buf, Len(buf), App.Path & "winhost.ini")
145     filterManagerTCPPort = Left$(buf, length)
146    
147     Exit Sub
148    
149     iniError:
150     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")
151     End
152    
153     End Sub
154    
155     Private Sub Label2_Click()
156    
157 pjm2 1.2 End Sub
158    
159 pjm2 1.1 Private Sub Winsock2_Connect()
160    
161     responseNumber = 0
162    
163 pjm2 1.3 ' Send something as soon as we connect to the server.
164     If connected = False Then
165     ' contact the FilterManager
166     Winsock2.SendData "STARTCONFIG" & vbCrLf
167     Else
168     ' Contact the Filter
169     Winsock2.SendData "HEARTBEAT" & vbCrLf
170     End If
171 pjm2 1.1
172     End Sub
173    
174     Private Sub Winsock2_DataArrival(ByVal bytesTotal As Long)
175    
176     responseNumber = responseNumber + 1
177    
178     ' Get the line from the server.
179     Winsock2.GetData response, vbString, bytesTotal
180    
181     ' Remove linefeeds and returns from the line.
182     response = Replace(response, Chr(13), "")
183     response = Replace(response, Chr(10), "")
184     Text4.Text = Text4.Text & vbCrLf & response
185    
186 pjm2 1.2 If connected = False Then
187     ' Perform TCP configuration (1.1)
188     On Error GoTo configError
189     Select Case responseNumber
190     Case 1:
191     If Not response = "OK" Then GoTo configError
192     Winsock2.SendData "LASTMODIFIED" & vbCrLf
193     Case 2:
194     If response = "ERROR" Then GoTo configError
195 pjm2 1.3 lastModified = response
196 pjm2 1.2 Winsock2.SendData "FILELIST" & vbCrLf
197     Case 3:
198     If response = "ERROR" Then GoTo configError
199 pjm2 1.3 fileList = response
200 pjm2 1.2 Winsock2.SendData "UDPUpdateTime" & vbCrLf
201     Case 4:
202     If response = "ERROR" Then GoTo configError
203     Winsock2.SendData "TCPUpdateTime" & vbCrLf
204     Case 5:
205     If response = "ERROR" Then GoTo configError
206     Winsock2.SendData "ENDCONFIG" & vbCrLf
207     Case 6:
208     If Not response = "OK" Then GoTo configError
209     Winsock2.SendData "FILTER" & vbCrLf
210     Case 7:
211     'we got a filter list here.
212     readTo = 0
213     ' get hostname
214     readTo = InStr(1, response, ";", vbBinaryCompare)
215     filterHostname = Mid(response, 1, readTo - 1)
216     response = Mid(response, readTo + 1, Len(response))
217     ' get UDP Port number
218     readTo = InStr(1, response, ";")
219     filterUDPPort = Mid(response, 1, readTo - 1)
220     response = Mid(response, readTo + 1, Len(response))
221     ' get TCP Port number
222     filterTCPPort = response
223     Winsock2.SendData "END" & vbCrLf
224     Case 8:
225     If Not response = "OK" Then GoTo configError
226     connected = True
227     responseNumber = 0
228     Winsock2.Close
229     Text4.Text = Text4.Text & vbCrLf & " <closed>"
230     x = MsgBox("got config okay")
231     End Select
232     Else
233     ' Perform a heartbeat (1.1)
234     On Error GoTo heartbeatError
235     Select Case responseNumber
236     Case 1:
237 pjm2 1.3 If Not response = "OK" Then GoTo heartbeatError
238     Winsock2.SendData "CONFIG" & vbCrLf
239 pjm2 1.2 Case 2:
240 pjm2 1.3 If Not response = "OK" Then GoTo heartbeatError
241     Winsock2.SendData fileList & vbCrLf
242 pjm2 1.2 Case 3:
243 pjm2 1.3 If Not response = "OK" Then GoTo heartbeatError
244     Winsock2.SendData lastModified & vbCrLf
245 pjm2 1.2 Case 4:
246 pjm2 1.3 If Not response = "OK" Then GoTo heartbeatError
247     Winsock2.SendData "ENDHEARTBEAT" & vbCrLf
248 pjm2 1.2 Case 5:
249 pjm2 1.3 If Not response = "OK" Then GoTo heartbeatError
250     Winsock2.Close
251     x = MsgBox("heartbeat sent okay.")
252 pjm2 1.2 End Select
253    
254     End If
255    
256    
257     Exit Sub
258    
259     configError:
260     x = MsgBox("error doing configuration")
261     heartbeatError:
262 pjm2 1.4 x = MsgBox("error doing configuration")
263 pjm2 1.1 End Sub