boost.asio's socket's recieve/send functions are bad?
- by the_drow
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().
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?
Why are those functions not the same?
Should I use them at all?
Can someone clarify that remark for me?