프로그래밍/c++ - boost::asio

boost::asio의 송신 함수. async_write, async_write_some, async_send의 차이

제페 2015. 11. 10. 06:30
반응형

boost::asio::async_write

 asio 전역 함수로, 버퍼의 내용물을 모두 전송했을 완료 함수를 호출한다. 함수가 일반적으로 사용되는 송신 함수이다.

 

boost::asio::ip::tcp::socket::async_write_some

 tcp 소켓의 멤버 함수, 버퍼 내용을 일부라도 보냈다면 완료 함수가 호출된다. 일부만 전송되는 경우는 자주 발생하진 않지만, 네트워크 상황이 아주 좋을 경우 일어날 있다.

만약, async_write_some으로 데이터 송신 부분을 작성하려면 송신 버퍼의 바이트 수와 송신 바이트 수가 일치할 때까지 async_write_some 반복 호출해야 것이다.

 

boost::asio::ip::tcp::socket::async_send

 tcp 소켓의 멤버 함수로, 다중 버퍼를 지원한다. 벡터(vector) 또는 배열(array) 버퍼들을 설정해야 한다. 플래그를 지정할 있다.

 

@플래그들

- socket_base::message_dont_route : 메시지는 라우팅 없다.

- socket_base::message_out_of_band out_of_band : 데이터로서 전송될 있음을 나타낸다.

- socket_base::message_out_of_record 

 

..

반응형