При использовании boost::asio::async_write(), согласно документации, обработчик вызывается если
1. All of the data in the supplied buffers has been written.
2. An error occurred.
В первом случае (т.е. если не было ошибки) правильно ли будет считать, что в момент вызова обработчика клиент уже получил все данные? Другими словами, включает ли время, прошедшее до момента вызова hendler-а, время, затраченное на физическое перемещение данных по сети от сервера к клиенту?
Я был уверен, что да. Но почему-то иногда замечаю, что клиент данные еще получает, а обработчик на сервере уже исполняется (без ошибок). Отсюда и возник вопрос, как такое возможно.