title: boost.asio's socket's receive/send functions are bad?
body: <blockquote>
    <p>Data may be read from or written to a
    connected TCP socket using the
    receive(), async_receive(), send()  or
    async_send()  member functions.
    However, as these could result in
    short writes or reads, an application
    will typically use the following
    operations instead: read(),
    async_read(), write() and
    async_write().</p>
  </blockquote>
  
  <p>I don't really understand that remark as read(), async_read(), write() and async_write() can also end up in short writes or reads, right?<br>
  Why are those functions not the same?<br>
  Should I use them at all?<br>
  Can someone clarify that remark for me?</p>