ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/experimental/host/vb_net_test/nettest.frm
Revision: 1.20
Committed: Mon Feb 26 09:12:51 2001 UTC (23 years, 2 months ago) by pjm2
Branch: MAIN
Changes since 1.19: +4 -2 lines
Log Message:
Altered the code to display the icon in the taskbar.

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 pjm2 1.11 Object = "{33155A3D-0CE0-11D1-A6B4-444553540000}#1.0#0"; "SysTray.ocx"
4 pjm2 1.1 Begin VB.Form Form1
5 pjm2 1.17 BorderStyle = 3 'Fixed Dialog
6 pjm2 1.10 Caption = "i-scream Winhost"
7 pjm2 1.1 ClientHeight = 5655
8     ClientLeft = 45
9 pjm2 1.17 ClientTop = 330
10 pjm2 1.12 ClientWidth = 4710
11 pjm2 1.20 Icon = "nettest.frx":0000
12 pjm2 1.1 LinkTopic = "Form1"
13     MaxButton = 0 'False
14 pjm2 1.17 MinButton = 0 'False
15 pjm2 1.1 ScaleHeight = 5655
16 pjm2 1.12 ScaleWidth = 4710
17 pjm2 1.1 ShowInTaskbar = 0 'False
18     StartUpPosition = 3 'Windows Default
19 pjm2 1.11 Begin VB.CommandButton Hide
20 pjm2 1.12 Caption = "Hide Window"
21     Height = 375
22     Left = 3120
23 pjm2 1.11 TabIndex = 7
24 pjm2 1.12 Top = 840
25     Width = 1455
26 pjm2 1.11 End
27     Begin SysTray.SystemTray SystemTray
28 pjm2 1.12 Left = 2160
29     Top = 1800
30 pjm2 1.11 _ExtentX = 847
31     _ExtentY = 847
32     SysTrayText = "i-scream Winhost"
33     IconFile = 0
34     End
35 pjm2 1.8 Begin VB.Timer Timer1
36 pjm2 1.12 Left = 2760
37     Top = 1800
38 pjm2 1.1 End
39     Begin VB.TextBox Text4
40 pjm2 1.6 Height = 1575
41 pjm2 1.1 Left = 240
42     MultiLine = -1 'True
43     ScrollBars = 2 'Vertical
44 pjm2 1.10 TabIndex = 1
45 pjm2 1.20 Text = "nettest.frx":0742
46 pjm2 1.1 Top = 3000
47 pjm2 1.12 Width = 3975
48 pjm2 1.1 End
49 pjm2 1.10 Begin VB.CommandButton Reconfigure
50     Caption = "Reconfigure with FilterManager"
51 pjm2 1.12 Height = 375
52 pjm2 1.10 Left = 120
53     TabIndex = 0
54 pjm2 1.12 Top = 840
55 pjm2 1.10 Width = 2895
56 pjm2 1.1 End
57 pjm2 1.5 Begin MSWinsockLib.Winsock TCPSock
58 pjm2 1.12 Left = 3720
59     Top = 1800
60 pjm2 1.1 _ExtentX = 741
61     _ExtentY = 741
62     _Version = 393216
63     End
64 pjm2 1.5 Begin MSWinsockLib.Winsock UDPSock
65 pjm2 1.12 Left = 3240
66     Top = 1800
67 pjm2 1.1 _ExtentX = 741
68     _ExtentY = 741
69     _Version = 393216
70     Protocol = 1
71     End
72 pjm2 1.17 Begin VB.Label Label5
73     Caption = "b e t a"
74     BeginProperty Font
75     Name = "MS Sans Serif"
76     Size = 24
77     Charset = 0
78     Weight = 700
79     Underline = 0 'False
80     Italic = 0 'False
81     Strikethrough = 0 'False
82     EndProperty
83     Height = 615
84     Left = 240
85     TabIndex = 8
86     Top = 120
87     Width = 1815
88     End
89 pjm2 1.9 Begin VB.Label Label2
90     Alignment = 1 'Right Justify
91     Caption = "Next heartbeat:"
92 pjm2 1.8 Height = 255
93 pjm2 1.12 Left = 2400
94 pjm2 1.10 TabIndex = 6
95 pjm2 1.9 Top = 480
96     Width = 1455
97 pjm2 1.8 End
98 pjm2 1.9 Begin VB.Label Label1
99     Alignment = 1 'Right Justify
100     Caption = "Next UDP packet:"
101 pjm2 1.8 Height = 255
102 pjm2 1.12 Left = 2400
103 pjm2 1.10 TabIndex = 5
104 pjm2 1.9 Top = 120
105     Width = 1455
106 pjm2 1.8 End
107 pjm2 1.9 Begin VB.Label Label4
108 pjm2 1.10 BorderStyle = 1 'Fixed Single
109 pjm2 1.9 Caption = "0"
110 pjm2 1.7 Height = 255
111 pjm2 1.12 Left = 3960
112 pjm2 1.10 TabIndex = 4
113 pjm2 1.9 Top = 480
114     Width = 615
115 pjm2 1.7 End
116 pjm2 1.9 Begin VB.Label Label3
117 pjm2 1.10 BorderStyle = 1 'Fixed Single
118 pjm2 1.9 Caption = "0"
119 pjm2 1.7 Height = 255
120 pjm2 1.12 Left = 3960
121 pjm2 1.10 TabIndex = 3
122 pjm2 1.9 Top = 120
123     Width = 615
124 pjm2 1.7 End
125 pjm2 1.6 Begin VB.Label Status
126 pjm2 1.12 Alignment = 2 'Center
127 pjm2 1.6 Caption = "Status:"
128 pjm2 1.1 Height = 255
129 pjm2 1.18 Left = 0
130 pjm2 1.10 TabIndex = 2
131 pjm2 1.12 Top = 1320
132 pjm2 1.18 Width = 4695
133 pjm2 1.1 End
134     End
135     Attribute VB_Name = "Form1"
136     Attribute VB_GlobalNameSpace = False
137     Attribute VB_Creatable = False
138     Attribute VB_PredeclaredId = True
139     Attribute VB_Exposed = False
140 pjm2 1.15 ' For the system tray bits
141 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
142     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
143    
144     Dim filterManagerHostname As String
145 pjm2 1.18 Dim filterManagerTCPPort As Long
146 pjm2 1.4
147 pjm2 1.13 Dim seqNo As Long
148     Dim machineName As String
149    
150 pjm2 1.2 Dim filterHostname As String
151 pjm2 1.3 Dim filterTCPPort As Integer
152     Dim filterUDPPort As Integer
153     Dim fileList As String
154     Dim lastModified As String
155 pjm2 1.2
156 pjm2 1.7 Dim UDPUpdateTime As Integer
157     Dim TCPUpdateTime As Integer
158    
159 pjm2 1.2 Dim protocolVersion As String
160     Dim connected As Boolean
161 pjm2 1.16
162     'Dim CUpTime As New CUpTime
163    
164 pjm2 1.1 Dim responseNumber As Integer
165    
166 pjm2 1.2 Private Sub Form_Load()
167 pjm2 1.13
168 pjm2 1.2 protocolVersion = "1.1"
169 pjm2 1.13
170 pjm2 1.10 Status.Caption = "Loading"
171 pjm2 1.15 'Form1.Caption = "i-scream Winhost " & protocolVersion & " for " & GetVersion()
172 pjm2 1.6
173 pjm2 1.4 ''''TEMP
174 pjm2 1.18 'filterManagerHostname = "killigrew.ukc.ac.uk"
175     'filterManagerTCPPort = 4567
176 pjm2 1.13 ''''' END TEMP
177 pjm2 1.4
178 pjm2 1.18 'GoTo skip
179 pjm2 1.4 On Error GoTo iniError
180     Dim buf As String * 256
181     Dim length As Long
182 pjm2 1.18 length = GetPrivateProfileString("i-scream Winhost", "FilterManager", "<no value>", buf, Len(buf), App.Path & "/winhost.ini")
183 pjm2 1.4 filterManagerHostname = Left$(buf, length)
184 pjm2 1.18 length = GetPrivateProfileInt("i-scream Winhost", "FilterManagerPort", 0, App.Path & "/winhost.ini")
185     filterManagerTCPPort = length
186 pjm2 1.20 On Error GoTo 0
187 pjm2 1.13 skip:
188    
189 pjm2 1.18 Status.Caption = "Connecting to Filter Manager " & filterManagerHostname & ":" & filterManagerTCPPort
190 pjm2 1.13 Reconfigure_Click
191 pjm2 1.6
192 pjm2 1.20 SystemTray.Icon = Val(Form1.Icon)
193 pjm2 1.15 SystemTray.Action = 0
194    
195    
196 pjm2 1.4 Exit Sub
197    
198     iniError:
199 pjm2 1.18 x = MsgBox("The i-scream Winhost could not read the correct settings from the winhost.ini file. Please correct these and try again. " & Err.Description, 48, "Configuration not found")
200 pjm2 1.4 End
201    
202     End Sub
203    
204 pjm2 1.10 Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
205 pjm2 1.11 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")
206 pjm2 1.10 If x = 7 Then
207     Cancel = True
208 pjm2 1.15 Else
209     SystemTray.Action = 2
210 pjm2 1.10 End If
211    
212     End Sub
213    
214 pjm2 1.11 Private Sub Hide_Click()
215     Form1.Visible = False
216     SystemTray.Icon = Val(Form1.Icon)
217     End Sub
218    
219 pjm2 1.10 Private Sub Reconfigure_Click()
220     ' establish a TCP connection to a filtermanager
221     connected = False
222     TCPSock.Close
223     TCPSock.Connect filterManagerHostname, filterManagerTCPPort
224 pjm2 1.11 End Sub
225    
226    
227    
228     Private Sub SystemTray_MouseDblClk(ByVal Button As Integer)
229    
230     Form1.Visible = True
231     Form1.SetFocus
232 pjm2 1.12
233 pjm2 1.11
234 pjm2 1.10 End Sub
235    
236 pjm2 1.5 Private Sub TCPSock_Connect()
237 pjm2 1.6
238     responseNumber = 0
239 pjm2 1.1
240 pjm2 1.3 ' Send something as soon as we connect to the server.
241     If connected = False Then
242     ' contact the FilterManager
243 pjm2 1.5 TCPSock.SendData "STARTCONFIG" & vbCrLf
244 pjm2 1.3 Else
245     ' Contact the Filter
246 pjm2 1.5 TCPSock.SendData "HEARTBEAT" & vbCrLf
247 pjm2 1.3 End If
248 pjm2 1.1
249     End Sub
250    
251 pjm2 1.5 Private Sub TCPSock_DataArrival(ByVal bytesTotal As Long)
252 pjm2 1.1
253     responseNumber = responseNumber + 1
254    
255     ' Get the line from the server.
256 pjm2 1.5 TCPSock.GetData response, vbString, bytesTotal
257 pjm2 1.1
258     ' Remove linefeeds and returns from the line.
259     response = Replace(response, Chr(13), "")
260     response = Replace(response, Chr(10), "")
261     Text4.Text = Text4.Text & vbCrLf & response
262    
263 pjm2 1.2 If connected = False Then
264     ' Perform TCP configuration (1.1)
265     On Error GoTo configError
266     Select Case responseNumber
267     Case 1:
268     If Not response = "OK" Then GoTo configError
269 pjm2 1.5 TCPSock.SendData "LASTMODIFIED" & vbCrLf
270 pjm2 1.2 Case 2:
271     If response = "ERROR" Then GoTo configError
272 pjm2 1.3 lastModified = response
273 pjm2 1.5 TCPSock.SendData "FILELIST" & vbCrLf
274 pjm2 1.2 Case 3:
275     If response = "ERROR" Then GoTo configError
276 pjm2 1.3 fileList = response
277 pjm2 1.5 TCPSock.SendData "UDPUpdateTime" & vbCrLf
278 pjm2 1.2 Case 4:
279     If response = "ERROR" Then GoTo configError
280 pjm2 1.7 UDPUpdateTime = response
281 pjm2 1.5 TCPSock.SendData "TCPUpdateTime" & vbCrLf
282 pjm2 1.2 Case 5:
283     If response = "ERROR" Then GoTo configError
284 pjm2 1.7 TCPUpdateTime = response
285 pjm2 1.5 TCPSock.SendData "ENDCONFIG" & vbCrLf
286 pjm2 1.2 Case 6:
287     If Not response = "OK" Then GoTo configError
288 pjm2 1.5 TCPSock.SendData "FILTER" & vbCrLf
289 pjm2 1.2 Case 7:
290     'we got a filter list here.
291     readTo = 0
292     ' get hostname
293     readTo = InStr(1, response, ";", vbBinaryCompare)
294     filterHostname = Mid(response, 1, readTo - 1)
295     response = Mid(response, readTo + 1, Len(response))
296     ' get UDP Port number
297     readTo = InStr(1, response, ";")
298     filterUDPPort = Mid(response, 1, readTo - 1)
299     response = Mid(response, readTo + 1, Len(response))
300     ' get TCP Port number
301     filterTCPPort = response
302 pjm2 1.5 TCPSock.SendData "END" & vbCrLf
303 pjm2 1.2 Case 8:
304     If Not response = "OK" Then GoTo configError
305     connected = True
306     responseNumber = 0
307 pjm2 1.5 TCPSock.Close
308 pjm2 1.2 Text4.Text = Text4.Text & vbCrLf & " <closed>"
309 pjm2 1.10 Status.Caption = "Configuration successful"
310 pjm2 1.8 Label3.Caption = UDPUpdateTime
311     Label4.Caption = TCPUpdateTime
312     Timer1.Interval = 1000
313 pjm2 1.2 End Select
314     Else
315     ' Perform a heartbeat (1.1)
316     On Error GoTo heartbeatError
317     Select Case responseNumber
318     Case 1:
319 pjm2 1.3 If Not response = "OK" Then GoTo heartbeatError
320 pjm2 1.5 TCPSock.SendData "CONFIG" & vbCrLf
321 pjm2 1.2 Case 2:
322 pjm2 1.3 If Not response = "OK" Then GoTo heartbeatError
323 pjm2 1.5 TCPSock.SendData fileList & vbCrLf
324 pjm2 1.2 Case 3:
325 pjm2 1.3 If Not response = "OK" Then GoTo heartbeatError
326 pjm2 1.5 TCPSock.SendData lastModified & vbCrLf
327 pjm2 1.2 Case 4:
328 pjm2 1.3 If Not response = "OK" Then GoTo heartbeatError
329 pjm2 1.5 TCPSock.SendData "ENDHEARTBEAT" & vbCrLf
330 pjm2 1.2 Case 5:
331 pjm2 1.3 If Not response = "OK" Then GoTo heartbeatError
332 pjm2 1.5 TCPSock.Close
333 pjm2 1.10 Status.Caption = "Heartbeat sent successfully."
334 pjm2 1.2 End Select
335    
336     End If
337    
338    
339     Exit Sub
340    
341     configError:
342 pjm2 1.10 Status.Caption = "FAILED to get configuration"
343 pjm2 1.8 Exit Sub
344 pjm2 1.2 heartbeatError:
345 pjm2 1.10 Status.Caption = "Heatbeat FAILED"
346 pjm2 1.8 Exit Sub
347 pjm2 1.1 End Sub
348 pjm2 1.5
349 pjm2 1.8 Private Sub Timer1_Timer()
350    
351     Label3.Caption = Label3.Caption - 1
352     Label4.Caption = Label4.Caption - 1
353    
354 pjm2 1.10 Status.Caption = ""
355 pjm2 1.8
356     If Label3.Caption < 1 Then
357 pjm2 1.15
358     ' prepare the contents of the XML packet.
359     seqNo = seqNo + 1
360     machineName = TCPSock.LocalHostName
361 pjm2 1.16 LocalIP = TCPSock.LocalIP
362 pjm2 1.14 packetDate = Date2Num()
363 pjm2 1.15
364    
365     Dim verinfo As OSVERSIONINFO
366     verinfo.dwOSVersionInfoSize = Len(verinfo)
367     ret% = GetVersionEx(verinfo)
368     If ret% = 0 Then
369     MsgBox "Error getting Windows version Information"
370     End
371     End If
372    
373     osName = getVersion()
374     osVersionMajor = verinfo.dwMajorVersion
375     osVersionMinor = verinfo.dwMinorVersion
376     osBuild = verinfo.dwBuildNumber
377    
378     Dim sysinfo As SYSTEM_INFO
379     GetSystemInfo sysinfo
380     Select Case sysinfo.dwProcessorType
381     Case PROCESSOR_INTEL_386
382     processorType = "Intel 386"
383     Case PROCESSOR_INTEL_486
384     processorType = "Intel 486"
385     Case PROCESSOR_INTEL_PENTIUM
386     processorType = "Intel Pentium variant"
387     Case PROCESSOR_MIPS_R4000
388     processorType = "MIPS R4000"
389     Case PROCESSOR_ALPHA_21064
390     processorType = "DEC Alpha 21064"
391     Case Else
392     processorType = "(unknown)"
393     End Select
394    
395     Dim memsts As MEMORYSTATUS
396     Dim memory&
397     GlobalMemoryStatus memsts
398     memory& = memsts.dwTotalPhys
399     memTotal = memory& \ 1024
400     memory& = memsts.dwAvailPhys
401     memFree = memory& \ 1024
402     memory& = memsts.dwTotalVirtual
403     swapTotal = memory& \ 1024
404     memory& = memsts.dwAvailVirtual
405     swapFree = memory& \ 1024
406    
407 pjm2 1.19 uptime = GetTickCount \ 1000
408    
409 pjm2 1.15 ' build the contents of the XML packet
410 pjm2 1.16 xml = "<packet seq_no=""" & seqNo & """ machine_name=""" & machineName & """ date=""" & packetDate & """ type=""data"" ip=""" & LocalIP & """>" & _
411 pjm2 1.15 "<os>" & _
412     "<name>" & osName & "</name>" & _
413     "<version>" & osVersionMajor & "</version>" & _
414     "<release>" & osBuild & "</release>" & _
415     "<platform>" & osName & "</platform>" & _
416     "<minor_version>" & osVersionMinor & "</minor_version>" & _
417     "<processor>" & processorType & "</processor>" & _
418 pjm2 1.19 "<uptime>" & uptime & "</uptime>" & _
419 pjm2 1.15 "</os>" & _
420     "<memory><total>" & memTotal & "</total><free>" & memFree & "</free></memory>" & _
421     "<swap><total>" & swapTotal & "</total><free>" & swapFree & "</free></swap>" & _
422 pjm2 1.17 "</packet>"
423 pjm2 1.13 Text4.Text = Text4.Text + xml
424 pjm2 1.8
425     ' Use the first winsock control to send a UDP packet.
426     UDPSock.RemoteHost = filterHostname
427     UDPSock.RemotePort = filterUDPPort
428     UDPSock.SendData xml
429 pjm2 1.10 Status.Caption = "UDP packet sent"
430 pjm2 1.8 Label3.Caption = UDPUpdateTime
431     End If
432    
433     If Label4.Caption < 1 Then
434     ' establish a TCP connection to a filter
435     TCPSock.Close
436     TCPSock.Connect filterHostname, filterTCPPort
437     Label4.Caption = TCPUpdateTime
438     End If
439    
440     End Sub
441 pjm2 1.13
442     Function Date2Num() As Long
443 pjm2 1.14 Dim x As Long
444     x = DateDiff("s", "1-1-1970", Now)
445     Date2Num = x
446 pjm2 1.13 End Function