Boost :: Asio读/写操作

pla*_*ris 8 c++ boost-asio

是什么调用之间的区别boost::asio::ip::tcp::socketread_some/ write_some成员函数和调用boost::asio::read/ boost::asio::writefree函数?

进一步来说:

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

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

bdo*_*lan 13

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

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