AMDG On 12/07/2018 02:44 AM, hh h via Boost wrote:
I have been using asio::async_read with protobuf for some time, it is relative easy to use protobuf function SerializeToOstream to attach a packet header and send the packet header along with to protobuf message, with fixed packet header size and message size in the header, I was able to use async_read.
But I have to change to use msgpack which I could not find a way like protobuf to attach a packet header to msgpack message. The only way I could do is to use async_read_some, but I am very concerning the remark in the async_read_some document. Appreciate your comments.
How do you identify the end of the message? Can you use one of the overloads of async_read that takes a completion_condition?
"The read operation may not read all of the requested number of bytes. Consider using the async_read function if you need to ensure that the requested amount of data is read before the asynchronous operation completes."
aynyc_read is essentially implemented by calling async_read_some repeatedly, until it fills the requested size. In Christ, Steven Watanabe