Boost :: Asio读/写操作

时间:2009-08-04 15:57:06

标签: c++ boost-asio

调用boost::asio::ip::tcp::socket的{​​{1}} / read_some成员函数和调用write_some / boost::asio::read免费函数有什么区别?

更具体地说:

使用一个比另一个好吗?

为什么两者都包含在库中?

1 个答案:

答案 0 :(得分:13)

只要传输了一个字节,就会返回read_some和write_some。因此,如果您想确保获得所有数据,则需要循环 - 但这可能是您想要的。

free函数是read_some和write_some的包装器,具有不同的终止条件,具体取决于过载。通常它们等待缓冲区完全转移(或发生错误,或者在某些重载中发生显式完成条件)