Hallo,
ich habe angefangen mich ein bisschen mit TCP auseinanderzusetzten.
Mithilfe dieses Tutorials habe ich jetzt einen Client und einen Server erstellt.
Mein Problem: Wenn der Server beendet wird und der Client läuft weiter, dann soll sich der Client wieder verbinden, wenn ich den Server wieder starte. Das ganze funktioniert bereits umgekehrt (wenn der Client beendet wird und der Server läuft weiter). Aber in der Gegenrichtung gibts Probleme. Der Client verbindet sich nur das erste Mal mit dem Server. Hier meine Source:
Serverseite:
Clientseite:
Weiß jemand woran das liegt?
ich habe angefangen mich ein bisschen mit TCP auseinanderzusetzten.
Mithilfe dieses Tutorials habe ich jetzt einen Client und einen Server erstellt.
Mein Problem: Wenn der Server beendet wird und der Client läuft weiter, dann soll sich der Client wieder verbinden, wenn ich den Server wieder starte. Das ganze funktioniert bereits umgekehrt (wenn der Client beendet wird und der Server läuft weiter). Aber in der Gegenrichtung gibts Probleme. Der Client verbindet sich nur das erste Mal mit dem Server. Hier meine Source:
Serverseite:
Code:
While client.Connected = False 'Wenn der Client nicht verbunden ist
Try
Server.Stop() 'sollte der Server noch laufen wird er beendet
Catch ex As Exception
End Try
Server = New TcpListener(ipendpoint) 'Deklaration des Servers
Server.Start()
client = Server.AcceptTcpClient 'Der Server nimmt den nächsten Client an
stream = client.GetStream
streamr = New StreamReader(stream)
streamw = New StreamWriter(stream) ' Streamdeklarationen
If client.Connected = True Then
listen() 'Diese Sub "hört zu" und endet, sobald der Client nicht mehr verbunden ist
End If
End While
Clientseite:
Code:
While True 'Dauerschleife (läuft in extra Thread also kein Problem
Try
Client.Connect(IP, Port) 'Der Client versucht sich zu verbinden
If Client.Connected = True Then 'wenn die Verbindung steht, werden die Streams deklariert
stream = Client.GetStream ' Stream wird auf Client verwiesen
streamw = New StreamWriter(stream) ' Stream zum Senden wird deklariert
streamr = New StreamReader(stream) ' Stream zum Empfangen wird deklariert
listen() '...und es wird zugehört. Auch diese Sub endet (habe ich extra geprüft), sobald keine Verbindung mehr steht
Else
End If
Catch ex As Exception
End Try
'Dann sollte eigentlich das Programm wieder nach oben springen, was es auch tut, allerdings verbindet es sich nicht mehr.
End While
Weiß jemand woran das liegt?