boost asio receive() 与 read()

发布于 2024-11-25 02:53:54 字数 217 浏览 4 评论 0原文

boost::asio::ip::tcp::socket 有两种类型的从流读取函数。我假设它们的语义有所不同。有人可以概述一下我的文档 浏览并没有澄清这一点。

There are two types of reading-from-stream functions for boost::asio::ip::tcp::socket. I am assuming they their semantics vary. Could someone please outline them, the documentation I have looked through does not clarrify this.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

伴我老 2024-12-02 02:53:54

正如文档中所说:

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

如果您实际上指的是 read_some(),那么没有什么区别。 receive() 是套接字特定的函数,而 read_some() 是可用于所有 asio 流的通用函数。 (很像 std::stringlength()size()

As it says in the documentation:

The receive() operation may not receive all of the requested number of
bytes. Consider using the read() function if you need to ensure that the
requested amount of data is read before the blocking operation
completes.

If you actually meant read_some(), then there is no difference. receive() is the socket-specific function, whereas read_some() is the generic function available for all asio streams. (much like std::string's length() and size())

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文