Уничтожение объекта сокета после отправки данныхC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Уничтожение объекта сокета после отправки данных

Сообщение Anonymous »

Предположим, что у нас есть TCP -сервер, мы пишем данные в сокет с использованием Boost :: asio :: async_write

Код: Выделить всё

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>
также предположим, что это было последнее сообщение, которое мы хотели отправить клиенту, после чего мы собираемся закрыть соединение. Поскольку это было последнее сообщение, мы не запускаем какие -либо новые операции чтения/записи и, следовательно, не расширяем время жизни socket_shared_ptr 
. Eavently, socket_shared_ptr разрушается, что приводит к закрытию соединения.
Мой вопрос - это предоставление окончательного_М.М.С. Или есть вероятность, что из -за закрытия сокета данные не достигнут приемника, даже если они были отправлены до того, как сокет был закрыт?>

Подробнее здесь: https://stackoverflow.com/questions/796 ... nding-data
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»