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!


Anmelden zum Antworten