1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
Public startPort As Integer
Public endPort As Integer
Public IPAddress As String
Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
Try
Dim lvi As New ListViewItem(startPort)
Dim tryToConnect As System.Net.Sockets.TcpClient = New System.Net.Sockets.TcpClient(IPAddress, startPort)
'Es kann eine Verbindung hergestellt werden
'somit ist der Port offen
lvi.SubItems.Add("is opend")
lvi.ForeColor = Color.Red
lvi.EnsureVisible()
BackgroundWorker1.ReportProgress(0, lvi)
Catch ex As Exception
'Es kann keine Verbindung hergestellt werden
'somit ist der Port geschlossen
Dim lvi As New ListViewItem(startPort)
lvi.SubItems.Add("is Closed")
lvi.SubItems.Add(ex.Message)
lvi.ForeColor = Color.Green
BackgroundWorker1.ReportProgress(0, lvi)
End Try
End Sub
Private Sub BackgroundWorker1_ProgressChanged(ByVal sender As Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs) Handles BackgroundWorker1.ProgressChanged
Dim lvi As New ListViewItem
'Daten vom Backgroundworker holen
lvi = e.UserState
Me.ListView1.Items.Add(lvi)
'Das akteulle ListviewItem anzeigen
lvi.EnsureVisible()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
BackgroundWorker1.WorkerReportsProgress = True
BackgroundWorker1.WorkerSupportsCancellation = True
IPAddress = "10.0.0.1"
startPort = 100
endPort = 110
For startPort = startPort To endPort
Me.BackgroundWorker1.RunWorkerAsync()
'Da ein Backgroundworker immer nur eine
'Aufgabe ausführen kann, warten wir hier
'bis er fertig ist und mit der nächsten
'Aufgabe weitermachen kann
While Me.BackgroundWorker1.IsBusy = True
Application.DoEvents()
End While
Next
End Sub
|