Получите некоторые данные на розетке.
template<
typename MutableBufferSequence>
std::size_t receive(
const MutableBufferSequence & buffers,
socket_base::message_flags flags);
Эта функция используется для приема данных на розетку потока. Функциональный вызов блокируется до тех пор, пока один или несколько байтов данных не будут успешно приняты, или пока не произойдет ошибка.
- buffers
Один или несколько буферов, в которые будут поступать данные.
- flags
Флаги, указывающие, как должен быть сделан звонок.
Количество полученных байтов.
- boost::system::system_error
Выброшен на провал. Код ошибки<boost::asio::error::eof>указывает, что соединение было закрыто сверстником.
Операция приема не может принимать все запрашиваемое количество байтов. Подумайте об использовании функции<read>, если вам нужно убедиться, что запрошенный объем данных считывается до завершения операции блокировки.
Для получения в единый буфер данных используют функцию<buffer>:
socket.receive(boost::asio::buffer(data, size), 0);
См. документацию<buffer>для информации о приеме в несколько буферов за один ход, и как использовать ее с массивами, бустер::array или std::vector.