ObjectDisposedException bei erneuten verbinden zum Server
-
Hi,
ich habe eine Client-Server-Verbindung und möchte diese dann beenden:
stream->Close(); client->Close();
Wenn ich nun erneut versuche über
client->BeginConnect( ServerIP, Port, gcnew AsyncCallback( &ConnectCallback ), client );
eine Verbindung aufzubauen bekomme ich eine ObjectDisposedException.
Die Hilfe sagt mir:
Der Socket wurde geschlossen.
weiter gibts noch den Hinweis
Wenn die Socketverbindung zuvor getrennt wurde, muss BeginConnect für einen Thread aufgerufen werden, der erst nach Abschluss des Vorgangs beendet wird. Dies ist eine Einschränkung des zugrunde liegenden Anbieters. Außerdem muss der verwendete EndPoint anders sein.
leider kann ich damit nichts anfangen
Wie kann ich es realisieren, dass ich die Verbindung trennen und wieder erneut aufbauen kann?
-
client = gcnew ...
-
Aus der MSDN:
(Socket::Shutdown Hilfe)Do not attempt to reuse the Socket after closing.
Es ist zwar nicht ersichtlich ob du die Klasse Socket direkt oder indeirekt via TcpClient benutzt, aber nach Close darf dieses Objekt nicht mehr gebraucht werden. Du musst ein neues erzeugen (gcnew).
Gruss Simon
Edit: jaja, bin viel zu langsam...
-
Na wenn das alles ist
Danke für die Hilfe, funktioniert!