【发布时间】:2013-03-14 17:33:51
【问题描述】:
我只是创建了一个非常简单的 C++ 类,它为我提供了一些方法,例如 connect() 和 read(),而不是公开所有 Boost.Asio 套接字调用。
现在,我正在尝试找出如何创建一个只读取所需字节数的方法:
SocketClient::read(int bytes, char* data); //reads desired amount of bytes and puts them in data, size of data>bytes!
不幸的是,我在 Boost.Asio 中没有找到 read_byte 函数。我不想丢弃已收到但尚未读取的字节。
【问题讨论】:
-
从文档中,我不阅读的数据会发生什么并不明显。我需要读取字节数。确切的数字。不多。不低于。如果少了,函数就会阻塞。 如果我需要的更多,会发生什么?
-
为什么你不能只使用你自己的内部缓冲机制?读取可用的内容,如果 $bytes 字节数可用,则返回那么多字节,否则读取更多。
标签: c++ sockets boost boost-asio