我正在做一个测试平台客户端/服务器系统(dotnet 4.0),最终将有两个组件通过流通过某种传输介质进行通信,但目前这两个组件通过单个 MemoryStream 进行通信。以前从未使用过它们,我假设我可以同时写作和阅读。但是,因为只有一个“光标”,我无法从流中读取,直到它完成写入并且我可以将 seek() 回零。
命名管道的东西支持全双工操作,但前提是我将一个对象设置为服务器并让另一个对象连接到它——这不是我现在想做的事情。
我可以通过创建一个字节缓冲区并让两个 MemoryStream 实例指向该缓冲区来获得我想要的结果,但是当我到达缓冲区的末尾并因为内存流无法扩展而出现异常时,它就会失败。
我可以通过创建一个文件而不是数组并拥有两个 FileStream 实例来做到这一点,但这似乎有点混乱。如果继续运行将导致磁盘已满,因为不会修剪已读取的数据。
我所追求的是一个不支持 seek() 或位置的流,维护单独的读写指针,缓冲写入它的数据并在读取后的某个时间丢弃它。感觉就像重新发明轮子来滚动我自己的。这样的事情肯定已经在某个地方了?