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

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Zerstören eines Socket -Objekts nach dem Senden von Daten

by Anonymous » 18 Aug 2025, 13:13

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?>

Top