2009-08-04 123 views
8

致电boost::asio::ip::tcp::socketread_some/write_some成员函数和调用boost::asio::read/boost::asio::write免费函数有什么区别?Boost :: Asio读/写操作

更具体地说:

使用一个比另一个有什么好处?

为什么都包含在库中?

回答

13

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

自由函数是read_some和write_some的封装函数,具有不同的终止条件,具体取决于过载。通常他们等待缓冲区被完全传输(或发生错误,或者在某些过载情况下发生明确的完成条件)

+0

但是为什么要同时包含? – 2009-08-04 16:34:32