2
语境
首先一些上下文:一个Boost.Asio的服务器接收格式化如下请求:混合TCP ::的iostream和套接字操作与Boost.Asio的
- X字节的元数据以XML
- X字节的可选二进制数据
我们有一个采用std :: istream的XML解析器,因此只需将tcp :: iostream传递给此函数就很简单。下面的二进制数据可以是沉重的,所以直到我们读取所有数据,我们应该异步读-say 500ko-的数据包。
问题
我们可以使用TCP :: iostream的第一,然后使用async_read与强调socket_streambuf?当然,这是确定的编制,但确实插槽上的读操作正确使用TCP :: iostream的内部缓冲区? (即使读取元数据后,这可能不是空的)。我想它应该尊重Liskov替代原则,但我更愿意确定。
我们能否从一种方法切换到另一种,其中/每当我们想要的吗?