728x90
반응형
basic_seq_packet_socket::async_send
비동기 전송을 시작한다.
template<
typename ConstBufferSequence,
typename WriteHandler = DEFAULT>
DEDUCED async_send(
const ConstBufferSequence & buffers,
socket_base::message_flags flags,
WriteHandler && handler = DEFAULT);
[ConstBufferSequence, WriteHandler, DEFAULT, DEDUCED]
이 함수는 시퀀스 있는 패킷 소켓에서 데이터를 비동기적으로 전송하는 데 사용된다. 함수 호출은 항상 즉시 반환된다.
파라미터
buffers
데이터를 전송하기 위한 하나 이상의 버퍼이다. 필요에 따라 버퍼 개체를 복사할 수 있지만, 기저 메모리 블럭의 소유권은 호출자가 유지하므로 핸들러가 호출될 때까지 유효하게 유지되야 한다.
flags
전송 호출 방법을 지정하는 플래그이다.
handler
전송 작업이 완료되는 시점에 호출되는 핸들러이다. 필요에 따라 핸들러의 복사본이 만들어 진다. 핸들러의 함수 서명은 아래와 같아야 한다.
void handler( const boost::system::error_code& error, // Result of operation. std::size_t bytes_transferred // Number of bytes sent. );
비동기 작업이 즉시 완료되는지 여부에 상관없이, 핸들러는 이 함수 내에서 호출되지 않는다. 작업이 즉시 완료되는 경우, 핸들러의 호출은 "post"를 사용하는 것과 동일한 방식으로 수행된다.
예제
단일 데이터 버퍼 읽으려면 다음과 같이 "buffer" 함수를 사용한다:
socket.async_send(boost::asio::buffer(data, size), 0, handler);
한 번에 여러 버퍼로 읽는 방법과 배열, boost::array 또는 std::vector와 함께 사용하는 방법에 대한 정보는 "buffer" 문서를 참조한다.
Boost.Asio 홈
728x90
반응형
'Boost C++ Libraries > Boost.Asio' 카테고리의 다른 글
Boost.Asio 색인 - basic_datagram_socket::async_send_to (0) | 2021.01.08 |
---|---|
Boost.Asio 색인 - basic_stream_socket::async_send (0) | 2021.01.08 |
Boost.Asio 색인 - basic_raw_socket::async_send (0) | 2021.01.08 |
Boost.Asio 색인 - basic_datagram_socket::async_send (0) | 2021.01.08 |
Boost.Asio 색인 - async_result< std::packaged_task< Result(Args...)>, Signature >: (0) | 2021.01.08 |