boost.asio的socket的接收/发送功能不好?

the*_*row 7 c++ boost boost-asio

数据可以从被读取或使用接收(),async_receive写入到连接的TCP套接字(),发送()或async_send()成员函数.然而,因为这些可能导致短期写入或读取,应用程序通常会使用以下操作来代替:阅读(),async_read(),write()方法和ASYNC_WRITE().

我真的不明白这句话因为read(),async_read(),write()和async_write()也可能以短写或读取结束,对吧?
为什么这些功能不一样?
我应该使用它们吗?
有人可以为我澄清这句话吗?

Dan*_*Dan 6

读取,async_read,,和ASYNC_WRITE该调用类函数多次,直到被传输的字节的请求号码的功能.为方便起见,图书馆将其包含在内.否则,每个开发人员都需要实现相同的逻辑.

类函数直接包装底层的OS函数,这基本上在文档中说明:这些函数可能在所有字节传输之前返回.

在大多数情况下,您应该使用免费(组合)函数来传输数据.