asio :: tcp :: socket的async_read_some和async_receive有什么区别?

def*_*ode 29 c++ boost-asio

有什么区别:

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

据我所知,他们的文件是相同的.

我应该选择哪个?

Jer*_*fin 22

我相信这两者基本相同.它们提供两者的原因是提供类似于iostream(具有read_some成员)和套接字(具有a receive)的接口.

正如彼得曾指出的那样,async_receive确实也有接受过载socket_base::message_flags,它async_read_some没有.


Éri*_*ant 18

他们在网络TR2提案(5.7.10.2 basic_stream_socket成员)中的规范也是相同的:

在async_receive上:

效果:调用this-> service.async_receive(this-> implementation,buffers,0,handler).

在async_read_some上:

效果:调用this-> service.async_receive(this-> implementation,buffers,0,handler).

所以我想这证实了杰瑞的印象.