
So I'm not sure what you mean exactly by "the server might send a few lines in a bunch." The server will only send one line at a time, in that it will call write_async for every line that it sends-- it will never call write_async on more than one line.
I meant to say: "if your protocol doesn't oblige the server to wait for client's acknowledge after every line."
However, the client might be doing some processing so the server might send a few lines before the client "comes up for air" next. If that's the case then all three lines will end up in the same buffer when the read_async handler is called?
Right.
In reading through, it occurs to me that I might be making the same mistake with write_async -- i.e. if I call write_async twice in quick succession, that could cause a problem unless I wait for the first write_async to complete before I call write_async a second time?
Yes, it was discussed several times: http://groups.google.com/group/boost-list/browse_thread/thread/a75fd0a362383...