1

我只是在创建一个非常简单的 C++ 类,它为我提供了一些方法,例如connect()and read(),而不是公开所有 Boost.Asio 套接字调用。

现在,我正在尝试找出如何创建一个只读取所需字节数的方法:

SocketClient::read(int bytes, char* data); //reads desired amount of bytes and puts them in data, size of data>bytes!

不幸的是,我read_byte在 Boost.Asio 中没有发现任何功能。我不想丢弃已收到但尚未读取的字节。

这是我的课。

4

1 回答 1

7

读取功能似乎提供了您所需要的:

该函数用于从流中读取一定字节数的数据。调用将阻塞,直到以下条件之一为真:

- The supplied buffers are full. That is, the bytes transferred
  is equal to the sum of the buffer sizes.
- An error occurred.

示例用法:

boost::asio::read(stream, boost::asio::buffer(data, size));
于 2013-03-14T18:53:12.193 回答