Page 1 of 1

Zerstören eines Socket -Objekts nach dem Senden von Daten

Posted: 18 Aug 2025, 13:13
by Anonymous
Angenommen, wir haben einen TCP -Server. Wir schreiben Daten mit Boost :: ASIO :: ASYNC_WRITE wie folgt:

Code: Select all

async_write(*socket_shared_ptr, boost::asio::buffer(final_message),
[socket_shared_ptr](const boost::system::error_code& ec, size_t)
{
// there is no error, data was written successfully &
// lifetime socket_shared_ptr is end when this function finished
});
< /code>
Nehmen wir auch an, dass dies die letzte Nachricht war, die wir an den Client senden wollten. Danach werden wir die Verbindung schließen. Da dies die letzte Nachricht war, starten wir keine neuen Lese-/Schreibvorgänge und erweitern daher nicht die Lebensdauer von Socket_shared_ptr 
. Oder gibt es eine Chance, dass die Daten aufgrund des Socket -Schließens den Empfänger nicht erreichen, obwohl er vor der Schließung der Socket gesendet wurde?>