-
boost::asio의 송신 함수. async_write, async_write_some, async_send의 차이프로그래밍/c++ - boost::asio 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
등..
반응형'프로그래밍 > c++ - boost::asio' 카테고리의 다른 글
코루틴(coroutine) 사용 중 주의해야 할 부분? (0) 2015.12.26 asio::strand의 올바른 사용법 (0) 2015.12.02 boost::asio::streambuf에 custom memory allocator 붙이기 (0) 2015.11.07 boost::asio deadline_timer를 이용한 유니티의 Invoke함수 흉내 내기 (0) 2015.09.28 boost::asio 완료 핸들러에 제네릭 람다 사용 시 있었던 문제 (0) 2015.09.17