我正面临着一个奇怪的错误。以下代码总是抛出异常(System.ArgumentException "Stream was not writable"):
TcpClient socket = new TcpClient();
socket.Connect("serverIp", serverPort);
//wrap networkstream with ssl
SslStream sslStream = new SslStream(socket.GetStream(),false);
stream.ReadTimeout = 5000;
stream.WriteTimeout = 5000;
//following line throws System.ArgumentException "Stream was not writable"
var writer = new BinaryWriter(sslStream);
writer.Write(abMessage, nStart, nLength);
writer.Flush();'sslStream‘对象canWrite和canRead属性总是'false’。
很明显,我已经在很多论坛上搜索过了,但是,我总是发现同样的代码对我不起作用。
我怎样才能修正这个异常?
发布于 2014-08-13 23:52:49
一旦您创建了一个SslStream (在TcpClient之上),您应该与ssl连接握手。为此,您将使用SslStream类型中可用的一些方法:
AuthenticateAsClient (几个过载)AuthenticateAsServer (几个过载)(或者它们是异步变体BeginAuthenticateAs...)
如果不使用这种握手方法,SslStream就不是真正的设置,您将无法从/写入网络流。
要使用的方法(AuthenticateAsClient或AuthenticateAsServer)是特定于您的实现和所需的Stream使用。
https://stackoverflow.com/questions/25297300
复制相似问题