> 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/a75fd0a3623831d9