Guten Abend zusammen.
Ich habe mich mal wieder an eine TCP Sache rangeworfen doch treffe auf ein Problem.
Bei meinem TCP Chat stört mich folgendes Problem:
Das Verbinden zu meinem TCP Server klappt super genauso wie das weiter Senden von Nachrichten. Doch sobald sich ein Client vom Server trennt, nimmt
der Server keinen neuen Clients an. Ich habe schon irgendwie was davon gelesen, einen neuen "client" zu erstellen sobald sich einer vom Server trennt,
doch habe nichts passendes gefunden.
Deshalb brauche ich jetzt ein wenig Hilfe von euch
Server Code: (Den Code habe ich zum Teil auch von hier kopiert)
Spoiler anzeigen
Ich habe mich mal wieder an eine TCP Sache rangeworfen doch treffe auf ein Problem.
Bei meinem TCP Chat stört mich folgendes Problem:
Das Verbinden zu meinem TCP Server klappt super genauso wie das weiter Senden von Nachrichten. Doch sobald sich ein Client vom Server trennt, nimmt
der Server keinen neuen Clients an. Ich habe schon irgendwie was davon gelesen, einen neuen "client" zu erstellen sobald sich einer vom Server trennt,
doch habe nichts passendes gefunden.
Deshalb brauche ich jetzt ein wenig Hilfe von euch
Server Code: (Den Code habe ich zum Teil auch von hier kopiert)
VB.NET-Quellcode
- Dim localAddr As IPAddress = IPAddress.Any
- Dim listener = New TcpListener(localAddr, Port)
- listener.Start()
- Do
- Console.WriteLine("-------------------------" & Environment.NewLine)
- Console.WriteLine("Server läuft..." & Environment.NewLine)
- Console.WriteLine("Warte auf Client..." & Environment.NewLine)
- Console.WriteLine("-------------------------" & Environment.NewLine)
- While True
- Dim client = listener.AcceptTcpClient()
- Try
- c.stream = client.GetStream
- c.streamr = New StreamReader(c.stream)
- c.streamw = New StreamWriter(c.stream)
- c.nick = c.streamr.ReadLine
- list.Add(c)
- Console.WriteLine(Time & c.nick & " has joined.")
- Do
- Try
- Dim tmp As String = c.streamr.ReadLine
- Console.WriteLine(Time & c.nick & ": " & tmp) 'Hier muss irgendwo
- SendToAllClients(Time & c.nick & ": " & tmp) 'der Fehler sein
- Catch
- list.Remove(c)
- Console.WriteLine(Time & c.nick & " has exit.")
- SendToAllClients(Time & c.nick & " has exit.")
- client.Close()
- Exit Do 'Auch hier schon ein paar Sachen probiert
- End Try
- Loop
- Catch ex As Exception
- MsgBox(ex)
- End Try
- 'client.Close()
- End While
- Loop
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Gonethu“ ()