On 5/22/07, Cliff Green
Even if Asio didn't provide nice default handling of "message boundaries", it's pretty easy to write the logic yourself in a non-blocking design, whether using an async (proactive) or reactive model.
I'd say that its not asio's job to provide any messaging semantics, and I applaud Chris for keeping the library focused on its core goals. Higher level functionality can come later, but you have all the tools you need to do this in asio already. I personally find that having to implement a "connection" class for a given communications protocol encourages good design. You end up breaking the protocol down into small functions that are easy to read and debug. Your class ends up being a nice little FSM, which is the Right Way to do this sort of thing anyway. Phooey to blocking reads. -- Caleb Epstein