C# GZipStream 4G限制-总流量还是当前流量?
让aaC# GZipStream 4G限制-总流量还是当前流量?,c#,.net,exception,gzipstream,sslstream,C#,.net,Exception,Gzipstream,Sslstream,让aaGzipStream为SSLStream提供数据 今天第一次注意到 “gzip流不能包含超过4GB的数据。” 写入网络的程序输入数据的速度比读取器获取数据的速度快。因此,我不清楚错误的原因 这是对通过流写入的总字节数的限制,还是积压将数据从GZipStram中取出并放入SSLStream中的问题? 读卡器能够在流结束之前解压并使用数据,因此我从未想过写入的总字节数会有这样的限制 似乎没有办法检查长度 任何人都可以分享他们如何处理此事的例子吗? 代码大纲: TcpClient network
GzipStream
为SSLStream
提供数据
今天第一次注意到
“gzip流不能包含超过4GB的数据。”
写入网络的程序输入数据的速度比读取器获取数据的速度快。因此,我不清楚错误的原因
这是对通过流写入的总字节数的限制,还是积压将数据从GZipStram
中取出并放入SSLStream
中的问题?
读卡器能够在流结束之前解压并使用数据,因此我从未想过写入的总字节数会有这样的限制
似乎没有办法检查长度
任何人都可以分享他们如何处理此事的例子吗?
代码大纲:
TcpClient network = = new TcpClient();
network.Connect(m_config.Address.Host, m_config.Address.Port);
SslStream sslStream = new SslStream(network.GetStream(), true .. ssl bits
Stream outStream = new GZipStream(sslStream, CompressionMode.Compress, true);
try {
String nextMessage;
while (messages.Dequeue(out nextMessage))
{
byte[] buffer = Encoding.UTF8.GetBytes(nextMessage + "\n");
outStream.Write(buffer, 0, buffer.Length);
}
} catch()
.NETFramework 2.0/3.0/3.5中的GZipStream和deflatesttream类不支持读取/写入超过4GB的数据
此限制已在.NET Framework 4.0中删除。谢谢。关闭GZipStream并创建一个新的GZipStream之后,我遇到了一些问题,最近被诊断为连接的另一端没有处理流的末尾,并且重新启动。
TcpClient network = = new TcpClient();
network.Connect(m_config.Address.Host, m_config.Address.Port);
SslStream sslStream = new SslStream(network.GetStream(), true .. ssl bits
Stream outStream = new GZipStream(sslStream, CompressionMode.Compress, true);
try {
String nextMessage;
while (messages.Dequeue(out nextMessage))
{
byte[] buffer = Encoding.UTF8.GetBytes(nextMessage + "\n");
outStream.Write(buffer, 0, buffer.Length);
}
} catch()