Я полагаю, что два по существу идентичны. Причина, по которой они предоставляют оба, заключается в предоставлении интерфейсов, похожих как на iostreams (которые имеют член read_some
), так и на сокеты (которые имеют receive
).
Как отметил Питер Ценг, async_receive
также имеет перегрузку, которая принимает socket_base::message_flags
, а async_read_some
- нет.