What is the difference between:
boost::asio::tcp::socket::async_read_some()boost::asio::tcp::socket::async_receive()
I believe the two are essentially identical. The reason they provide both is to provide interfaces similar to both iostreams (which have a read_some member) and sockets (which have a receive).
As Peter Tseng pointed out, async_receive does also have an overload that accepts socket_base::message_flags, which async_read_some does not.