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?>
Angenommen, wir haben einen TCP -Server. Wir schreiben Daten mit Boost :: ASIO :: ASYNC_WRITE wie folgt:
[code]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 [/code]. 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?>