gpt4 book ai didi

c# - SslStream 错误 : Stream was not writable

转载 作者:太空宇宙 更新时间:2023-11-03 13:12:26 29 4
gpt4 key购买 nike

我遇到了一个奇怪的错误。以下代码总是抛出异常(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”对象 canWritecanRead 属性始终为“false”。

显然,我已经用 Google 搜索过,并在许多论坛中进行了搜索,但是,我总是发现相同的代码对我不起作用。

如何解决这个异常?

最佳答案

一旦你创建了一个SslStream(在一个TcpClient之上)你应该握手ssl连接。为此,您将使用 SslStream 类型中可用的一些方法:

  • AuthenticateAsClient(多个重载)
  • AuthenticateAsServer(多个重载)

(或者它们是异步变体 BeginAuthenticateAs...)

如果不使用这种握手方法,SslStream 就不会真正设置好,您将无法从/向网络流读取或写入。

使用哪种方法(AuthenticateAsClientAuthenticateAsServer)取决于您的实现和 SSL 流的预期用途。

关于c# - SslStream 错误 : Stream was not writable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25297300/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com