相当于MemoryStream的全双工/重叠?

时间:2013-10-14 13:25:26

标签: c# memorystream

我正在做一个测试平台客户端/服务器系统(dotnet 4.0),最终将有两个组件通过流在某些传输介质上进行通信,但目前这两个组件通过单个MemoryStream进行通信。从来没有使用过它们,我假设我可以同时写作和阅读。但是,因为只有一个'光标',所以在完成写入之前我无法从流中读取,我可以将()返回到零。

命名管道支持全双工操作,但只有当我将一个对象设置为服务器并让另一个连接到它时 - 这不是我现在想要做的事情。

我可以通过创建一个字节缓冲区并让两个MemoryStream实例指向该缓冲区来获得我想要的结果,但是当我到达缓冲区的末尾并因为无法扩展内存流而得到异常时会出现这种情况

我可以通过创建一个文件而不是数组并拥有两个FileStream实例来实现这一点,但这似乎有点混乱。如果保持运行会产生一个完整的磁盘,因为没有任何东西可以修剪已读取的数据。

我所追求的是一个不支持seek()或position的流,维护单独的读写指针,缓冲写入它的数据并在读取之后丢弃它。感觉像重新发明轮子自己滚动。当然这样的事情已经出现在某个地方了?

0 个答案:

没有答案