`socket::receive()` returns how much has been received and is similar to
`recv()`. `socket::async_receive()` does not actually receive stuff --
it only tells your `asio::io_service` that as *it* receives something it
shall pass that data on to your callback.
Because `socket::async_receive()` is asynchronous (it only registers the
socket <-> callback) and doesn't receive anything it can't return any
This is one of the concepts of asynchronous development, I think
refreshing your knowledge about that would be benefital.