提升asio receive()vs read()

时间:2011-07-18 13:14:06

标签: c++ tcp boost-asio

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

1 个答案:

答案 0 :(得分:5)

正如文档中所述:

  

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

如果你的确意味着read_some(),那就没有区别了。 receive()是特定于套接字的函数,而read_some()是可用于所有asio流的通用函数。 (很像std::string的{​​{1}}和length()