title: boost::asio socket async_* strand
body: <p>How to perform async_* operations on socket through the strand? I've looked at Timer.5 (Boost/Asio examples), but they only show how to invoke user's handler. When I <code>async_write</code> to the socket in multithreaded application data may be written corrupted. And a <code>strand</code> guarantees that none of those handlers will execute concurrently.</p>