Hallo, ich habe ein weiteres kleines Problem,
Ich habe einen TCP-Server programmiert und hätte gerne,
dass bei jeder eingehenden Verbindung eine Listbox erstellt
wird und dort bestimmte Daten des Clients eingetragen werden.
leider bekomme ich an der Stelle, bei der ich auf die Eigenschaften der listbox zugreife immer folgenden Fehler:
Im Formload-Event klappt alles wunderbar, aber das ist ja nicht Sinn der Sache
Hoffe mir kann einer behilflich sein
Ich habe einen TCP-Server programmiert und hätte gerne,
dass bei jeder eingehenden Verbindung eine Listbox erstellt
wird und dort bestimmte Daten des Clients eingetragen werden.
VB.NET-Quellcode
- ....
- Private Structure Connection
- Dim stream As NetworkStream
- Dim streamw As StreamWriter
- Dim streamr As StreamReader
- Dim nick As String ' natürlich optional, aber für die identifikation des clients empfehlenswert.
- Dim geschossen As Integer
- Dim position As Point
- Dim winkel As Integer
- Dim waffe As Integer
- Dim libo As ListBox
- End Structure
- Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
- ipendpoint = New IPEndPoint(IPAddress.Any, TextBox1.Text)
- mainthread = New Threading.Thread(AddressOf mainserver)
- mainthread.Start()
- End Sub
- Sub mainserver()
- Dim y As Integer = 12
- MsgBox("Der Server läuft!")
- Server = New TcpListener(ipendpoint)
- Server.Start()
- While True ' wir warten auf eine neue verbindung...
- client = Server.AcceptTcpClient
- Dim c As New Connection ' und erstellen für die neue verbindung eine neue connection...
- c.stream = client.GetStream
- c.streamr = New StreamReader(c.stream)
- c.streamw = New StreamWriter(c.stream)
- Me.Controls.Add(c.libo)
- c.libo.Visible = True
- c.libo.Size = New Size(71, 459)
- c.libo.Location = New Point(y, 41)
- c.waffe = 1
- c.geschossen = 0
- c.winkel = 0
- c.position = New Point(250, 250)
- c.nick = c.streamr.ReadLine ' falls das mit dem nick nicht gewünscht, auch diese zeile entfernen.
- MsgBox(c.nick)
- liste.Add(c) ' und fügen sie der liste der clients hinzu.
- ' falls alle anderen das auch lesen sollen können, an alle clients weiterleiten. siehe SendToAllClients
- y = y + 77
- Dim t As New Threading.Thread(AddressOf ListenToConnection)
- t.Start(c)
- End While
- End Sub
- .....
leider bekomme ich an der Stelle, bei der ich auf die Eigenschaften der listbox zugreife immer folgenden Fehler:
Im Formload-Event klappt alles wunderbar, aber das ist ja nicht Sinn der Sache
Hoffe mir kann einer behilflich sein