Когда boost.asio действительно начнет передачу и отправит данные? ⇐ C++
-
Anonymous
Когда boost.asio действительно начнет передачу и отправит данные?
boost::asio::ip::tcp::socket использует буферы. Я знаю, что при вызове write или async_write данные просто записываются в буферы. Мой вопрос: когда они действительно будут отправлены? Или, если быть точнее, когда asio действительно начнет передачу?
Насколько я знаю, по крайней мере, asio должен начинать передачу, когда буфер заполнен, поэтому в этом случае данные можно считать отправленными. Но что, если в буфер больше не помещаются данные? Будут ли короткие данные оставаться в буфере навсегда? Нужно ли мне вызывать некоторые API-интерфейсы flush(), чтобы сообщить asio, что "На данный момент больше ничего нет. Немедленно отправьте данные в буфер!" ? Если таких API нет, как можно обеспечить своевременность передачи?
boost::asio::ip::tcp::socket использует буферы. Я знаю, что при вызове write или async_write данные просто записываются в буферы. Мой вопрос: когда они действительно будут отправлены? Или, если быть точнее, когда asio действительно начнет передачу?
Насколько я знаю, по крайней мере, asio должен начинать передачу, когда буфер заполнен, поэтому в этом случае данные можно считать отправленными. Но что, если в буфер больше не помещаются данные? Будут ли короткие данные оставаться в буфере навсегда? Нужно ли мне вызывать некоторые API-интерфейсы flush(), чтобы сообщить asio, что "На данный момент больше ничего нет. Немедленно отправьте данные в буфер!" ? Если таких API нет, как можно обеспечить своевременность передачи?
Мобильная версия