【发布时间】:2012-01-09 16:55:17
【问题描述】:
当我尝试从 SslStream 读取时,如果我没有设置连接超时,则 Read() 函数永远不会结束,但如果我这样做了,则会出现超时异常。这家伙有同样的问题http://msdn.microsoft.com/en-us/library/system.net.security.sslstream.read.aspx。我这里不做什么代码
public byte[] ReadBytes()
{
this.bufferGlobal.Clear();
byte[] buffer = new byte[this.bufferSize];
int recv = this.stream.Read(buffer, 0, buffer.Length);
while (recv != 0)
{
addBytes(buffer, ref bufferGlobal, recv);
recv = this.stream.Read(buffer, 0, buffer.Length);
}
return (byte[])this.bufferGlobal.ToArray(typeof(byte));
}
提前致谢。
UPD:
我想我找到了答案。我可以将 SslStream 上的读取超时设置为等于 1,该值对于套接字活动没有意义(这意味着您可以下载大文件并且不用担心 SslStream 他不会关闭连接或中断接收数据)。我只是测试这个解决方案,但似乎工作正常。谢谢大家。
【问题讨论】:
标签: c# .net network-programming