将压缩数据写入NetworkStream

Geo*_*sen 1 c# compression networking stream

我正在编写一个简单的客户端 - 服务器应用程序,并查看MSDN文档,我遇到了一些有趣的流类型...

http://msdn.microsoft.com/en-us/library/system.io.compression.deflatestream.aspx http://msdn.microsoft.com/en-us/library/system.io.compression.gzipstream.aspx

显然,有压缩流这样的东西!当然,考虑到我们正在处理网络,这非常有吸引力.但是,最不幸的是,TcpClient.GetStream()只返回一个NetworkStream - 不是任何形式的压缩流.

我想知道是否可以连接压缩流以重定向到NetworkStream,这意味着我可以编写压缩流,并且该流将其压缩输出写入我的NetworkStream.我还需要知道如何反向,获取压缩流以从NetworkStream读取.

另一方面,你推荐我做什么 - 哪个提供最快的压缩,GZip或Deflate?两者之间的压缩有什么区别?

SLa*_*aks 5

这些是包装流.
您可以创建GzipStream任何现有流,以将压缩数据读取或写入内部流.