
Another advantage to Robert's suggestion is that you probably get some error detection thrown in - for very good measure.
If you are building a system for controlling warehouse picking, you must surely be considering some error detection/correction?
Error detection is in my scope of work, however correction is not. That is to say that I need to know when a transmission error has occurred (common over slow radio links in a factory) but do not need to do anything fancy to reconstruct the missing data, rather just request a re-transmit.
Of course, anything with iostreams is complicated but
http://www.boost.org/doc/libs/1_35_0/libs/iostreams/doc/index.html
gives you a good start.
I've poured through the iostreams library quite a bit, and I love the concept of buffered sources and sinks. I haven't quite figured out how to tie iostreams into asio yet, but I'm working on it. ;) Eric