我正在构建一个网络应用程序,它需要能够从正常的网络流量切换到zlib压缩流、中间流。我对此事的想法涉及布尔开关,当打开时将导致网络代码通过我可以输入的类传递所有数据IEnumerable<byte>
,然后提取解压缩的流,将其传递给已经存在的协议解析代码。
我看过的东西:
- ZLib.NET - 看起来有点……不拘一格,并不是我想要的。尽管如此,仍然会是一个不错的开始。(Jon Skeet 在这里的评论也几乎没有启发我。)
- SharpZipLib - 这似乎根本不支持 zlib?任何人都可以确认或否认这一点吗?
我非常喜欢所有托管解决方案,但让我们来看看......在.NET中是否有这个库的任何其他实现,这可能更适合我想要做的事情,或者我应该使用ZLib。 NET 并以此为起点?
PS:
乔恩要求提供更多细节,所以就在这里。
我正在尝试实施MCCP 2。这涉及到在网络流中发送的信号,并且该信号之后的所有内容都是 zlib 压缩数据流。在上面的链接中有指向它们的确切含义的链接。无论如何,要清楚,我在这个(客户端,而不是服务器)的接收端,我已经从网络流中读取了一堆数据,并且切换将在这个中间(总共至少可能),因此任何解决方案都需要能够在接管 NetworkStream 之前将一些额外的数据输入其中(或者我手动输入其余数据)。