Что является различием между asio:: tcp:: async_read_some и async_receive сокета?

Что является различием между:

  • boost::asio::tcp::socket::async_read_some()
  • boost::asio::tcp::socket::async_receive()

Насколько я могу сказать, что их документация идентична.

Который я должен предпочесть?

29
задан deft_code 10 February 2010 в 15:51
поделиться

2 ответа

Их спецификация в предложении networking TR2 (5.7.10.2 basic_stream_socket members) тоже идентична:

On async_receive:

Effects: Вызывает this->service.async_receive(this->implementation, buffers, 0, handler).

On async_read_some:

Effects: Вызывает this->service.async_receive(this->implementation, buffers, 0, handler).

Так что я думаю, это подтверждает впечатление Джерри.

18
ответ дан 28 November 2019 в 01:48
поделиться

Я считаю, что они по сути идентичны. Причина, по которой они предоставляют оба, заключается в предоставлении интерфейсов, аналогичных как iostreams (которые имеют член read_some ), так и сокетам (которые имеют receive ).

Как указал Питер Ценг, async_receive также имеет перегрузку, которая принимает socket_base :: message_flags , а async_read_some - нет.

22
ответ дан 28 November 2019 в 01:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: