Вопрос

В чем разница между вызовами функций-членов boost :: asio :: ip :: tcp :: socket read_some / write_some и вызывая boost :: asio :: read / boost :: asio :: write свободные функции?

Более конкретно:

Есть ли преимущество в использовании одного над другим?

Почему оба включены в библиотеку?

Это было полезно?

Решение

read_some и write_some могут вернуться, как только будет передан хотя бы один байт. Таким образом, вам нужно выполнить цикл, если вы хотите убедиться, что вы получаете все данные - но это может быть тем, что вы хотите.

Свободные функции являются обертками для read_some и write_some и имеют различные условия завершения в зависимости от перегрузки. Обычно они ожидают полной передачи буфера (или возникновения ошибки, или при некоторых перегрузках возникает явное условие завершения)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top