當我嘗試從SslStream函數讀取時Read()永遠不會結束如果我沒有設置連接超時但如果我做了超時異常。這傢伙有同樣的問題http://msdn.microsoft.com/en-us/library/system.net.security.sslstream.read.aspx。我不在這裏做什麼代碼SslStream讀取所有字節
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));
}
Thx提前。
UPD:
我想我找到了答案。我可以將SslStream的讀取超時設置爲1,這對於活動套接字來說沒有意義(它意味着您可以下載大文件,不必擔心SslStream不會關閉連接或中斷接收數據)。我只是測試這個解決方案,但似乎工作正常。 Thx大家。
我寫庫與谷歌服務溝通,我不能要求谷歌關閉連接後傳輸所有數據。正如我看到當我試圖連接到不同的網站一切正常,除了「公司的好」)))也許我們有另一種方式來做到這一點? – gingray 2012-01-09 17:33:38