Julian Maicher
Erfahrenes Mitglied
Hi,
Ich mache gerade meine ersten Schritte in der Netzwerkprogrammierung um möchte ein ganz simples Chat Programm schreiben. Erstmal möchte ich nur Daten an einen Server senden.
Damit der TCPListener immer "hört" habe ich eine Endlosschleife eingebaut. Das habe ich bereits in diversen Beispielen gesehen, doch keines davon verwendete zur Ausgabe Formulare, sondern die Console.
Starte ich jetzt die Endlosschleife reagiert das Formular nicht mehr. Ok DoEvents habe ich mir gedacht, aber das geht auch nicht wirklich. In der Endlosschleife erfolgt nämlich eine Ausgabe in einer Listbox, die auch bei DoEvents nicht erscheint.
Mein bisheriger Code:
Ich möchte das ganze gerne mit TCPClient / -Listener realisieren und ohne Threads, das muss doch gehen, oder?
Danke,
suye
Ich mache gerade meine ersten Schritte in der Netzwerkprogrammierung um möchte ein ganz simples Chat Programm schreiben. Erstmal möchte ich nur Daten an einen Server senden.
Damit der TCPListener immer "hört" habe ich eine Endlosschleife eingebaut. Das habe ich bereits in diversen Beispielen gesehen, doch keines davon verwendete zur Ausgabe Formulare, sondern die Console.
Starte ich jetzt die Endlosschleife reagiert das Formular nicht mehr. Ok DoEvents habe ich mir gedacht, aber das geht auch nicht wirklich. In der Endlosschleife erfolgt nämlich eine Ausgabe in einer Listbox, die auch bei DoEvents nicht erscheint.
Mein bisheriger Code:
Code:
Dim port As Integer = 13000
Dim localAddr As IPAddress = IPAddress.Parse("127.0.0.1")
Dim server As New TcpListener(localAddr, port)
server.Start()
Dim bytes(10000) As Byte
Dim data As String
While True
lstListen.Items.Add(DateTime.Now.ToString.Substring(11) & ": Warte auf Client ...")
Dim client As TcpClient = server.AcceptTcpClient
lstListen.Items.Add(DateTime.Now.ToString.Substring(11) & ": Client verbunden!")
Dim stream As NetworkStream = client.GetStream
data = Nothing
Dim i As Integer
i = stream.Read(bytes, 0, bytes.Length)
data = System.Text.Encoding.ASCII.GetString(bytes, 0, i)
lstListen.Items.Add(DateTime.Now.ToString.Substring(11) & ":" & data)
stream.Close()
client.Close()
End While
Danke,
suye