TCP problem bei Wiederherstellung der Verbindung

july

Erfahrenes Mitglied
Hallo zusammen,

ich hab gerade hier ein Problem mit dem Netzwerk, wenn ich mich versuche mit dem Server wieder zu verbinden, bekomme ich eine Socket-Exception 10048, was nichts anderes bedeutet, dass der Port in Benutzung ist, obwohl ich TcpListener ordnungsgemäss beim Abmelden schließe.
Code:
....
TcpListener server= new TcpListener(localaddr, port);
...
server.Stop();

Beim Debuggen sehe ich, dass der Listener auch wirklich gestoppt wird und alles ok ist.

Wie kann man den Port wieder freigeben, so dass wenn ich den Server wieder starte, kann der Client sich wieder verbinden.
Danke im Voraus.

Viele Grüße July
 
Hi

startest du das schnell nach dem Schließen wieder?
Das Betriebssystem braucht etwas, bis alles wieder breit ist, leider.
 
Hi

startest du das schnell nach dem Schließen wieder?
Das Betriebssystem braucht etwas, bis alles wieder breit ist, leider.
nein, eigentlich nicht.
Ich hab jetzt den Fehler gefunden, es lag daran, dass ich zwar
Code:
TcpClient client = server.AcceptTcpClient();
tue, aber es fehlte client.Close(), so wurde der Socket nicht geschlossen und der Port war quasi in Benutzung.

Viele Grüße
Julia
 
ich empfehle die, wenn du eine Verbindung öffnest, es in eine using Anweisung zu packen
also so:

Code:
using(TcpClient client = server.AcceptTcpClient())
{
...
}

dann brauchst du dir um das Schließen der Verbindung nicht mehr zu kümmern
 
Zurück