提升asio receive()vs read()

Has*_*yed 4 c++ tcp boost-asio

有两种类型的从流读取功能boost::asio::ip::tcp::socket.我假设他们的语义各不相同.有人可以概述一下,我看过的文件并没有澄清这一点.

Cor*_*son 5

正如文档中所述:

receive()操作可能无法接收所有请求的字节数.read()如果需要确保在阻止操作完成之前读取所请求的数据量,请考虑使用该函数.

如果你的意思是read_some(),那就没有区别了. receive()是特定于套接字的函数,而是read_some()所有asio流可用的通用函数.(很像std::string' length()和' size())

  • 我将它与“std::string::length()”和“std::string::size()”进行比较。`receive()` 特定于 `socket`,`read_some()` 是所有 asio 流通用的。 (2认同)