2
하나의 요소만으로 버퍼 시퀀스를 생성하는 boost::asio::buffer
이 있습니다. 여러 버퍼에서 버퍼 시퀀스를 만들 수있는 래퍼가 있습니까?버퍼 시퀀스 생성 방법
하나의 요소만으로 버퍼 시퀀스를 생성하는 boost::asio::buffer
이 있습니다. 여러 버퍼에서 버퍼 시퀀스를 만들 수있는 래퍼가 있습니까?버퍼 시퀀스 생성 방법
이 래퍼가 없다, 그러나 당신은 std::vector
, std::list
, 또는 boost::array
로 MutableBufferSequence 및 ConstBufferSequence 개념의 요구 사항을 충족하는 컨테이너에 여러 버퍼를 제공 할 수 있습니다. 대부분의 함수는 BufferSequence 개념으로 구현되며 boost::asio::buffer
은 단일 버퍼를 요구 사항을 충족하는 형식으로 래핑하는 데 편리한 방법을 제공합니다. 이 documentation에는 간단히 언급되어 있습니다. buffers
컬렉션 Boost.Asio가 필요 복사본을 만들 수 있습니다 documentation 상태로, 범위에 남아 필요가 없다는
// Write the serialized data to the socket. We use "gather-write" to send
// both the header and the data in a single write operation.
std::vector<boost::asio::const_buffer> buffers;
buffers.push_back(boost::asio::buffer(outbound_header_));
buffers.push_back(boost::asio::buffer(outbound_data_));
boost::asio::async_write(socket_, buffers, handler);
참고 : 여기에
은 Boost.Asio 직렬화 example에서 조각입니다. 그러나 기본 메모리 인outbound_header_
및
outbound_data_
은 핸들러가 호출 될 때까지 유효해야합니다.
감사합니다. 도움이되었습니다. asio 문서는 약간 드물다. –