是否可以使用GZipStream在C#中传递SslStream?即你能做吗
GZipStream stream = new GZipStream(sslStream, CompressionMode.Compress);
stream.Write(...);
...
GZipStream stream = new GZipStream(sslStream, CompressionMode.Decompress);
stream.Read(...);
如果可能,SslStream在此之后是否仍处于可用状态,还是应该将其关闭?
谢谢。
最佳答案
我不知道为什么不这样做。 SSL流将仅被提供字节,但这还是它所期望的。重要的是正确关闭GZipStream
,因为即使Flush()
也不总是真正刷新(由于必须保留运行中的缓冲区进行压缩)。所以:
using(GZipStream stream = new GZipStream(sslStream, CompressionMode.Compress)) {
stream.Write(...);
stream.Close(); // arguably overkill; the Dispose() from "using" should be enough
}
我还假设您不是在读取和写入相同的SSL流(即,这是两个单独的示例,而不是一个示例),因为这听起来不太可行。