2015-09-25 71 views
1

我試圖連接到SSL TCP服務器,它在我的瀏覽器上工作,我可以收到硬編碼的響應。在應用程序中,使用ReadLine函數時會發生異常。無法讀取流(sslStream)

Error: System.ArgumentException: Cannot read the stream on System.IO.StreamReader..ctor(Stream stream, Encoding encoding, Boolean detectEncodingFromByteOrderMarks, Int32 bufferSize, Boolean leaveOpen) on System.IO.StreamReader..ctor(Stream stream) on App_Name.Program.Connection.Connect(String serverIp, Int32 serverPort, ConnectionInfo connectionInfo)

tcpClient = new TcpClient(serverIp, serverPort); 
sslStream = new SslStream(tcpClient.GetStream(), false, new RemoteCertificateValidationCallback(TrustAllCertificatesCallback)); 

streamReader = new StreamReader(sslStream); 
streamWriter = new StreamWriter(sslStream); 

string inputLine; 

while ((inputLine = streamReader.ReadLine()) != null) 
{ 
    ParseMessage(streamWriter, serverIp, inputLine); 
} 
+0

任何類型的防火牆限制或其他訪問限制,你可以想到這會在你的環境中造成這種限制嗎? – Igor

+0

您是否在某處設置了['ServicePointManager.SecurityProtocol'](https://msdn.microsoft.com/en-us/library/system.net.servicepointmanager.securityprotocol(v = vs.110).aspx)? – rene

+0

@rene不,這是除證書驗證外的整個代碼。 – Kenny

回答

1

此線具有低於連接功能被添加到正確初始化handsake。

sslStream.AuthenticateAsClient(serverIp); 
+0

這不提供問題的答案。要批評或要求作者澄清,請在其帖子下方留言。 – Sender

+0

@Sender抱歉,這是我的問題,但我添加了解釋,謝謝。 – Kenny