【问题标题】:C# ssl stream wont stop buffering before sendingC# ssl 流在发送前不会停止缓冲
【发布时间】:2009-08-27 14:55:39
【问题描述】:

我正在尝试使用 C# 通过 ssl 套接字连接到服务器并来回发送 xml 数据。似乎数据不会被发送,直到它达到一定的数据包大小 1000 字节,所有数据包都被粉碎在彼此之上。有没有办法强制 ssl 库在我发送数据包时发送它们?

我正在使用 SslStream 和 StreamWriter 发送数据,并且我已经尝试过减小数据包大小并将 NoDelay 设置为 true 无济于事。我只是缺少什么吗?

sslStream = new SslStream(sslClient.GetStream(), false, new RemoteCertificateValidationCallback(CertificateValidationCallback));
sslStream.AuthenticateAsClient(appSettings.CBPASServer);
showSslInfo(appSettings.CBPASServer, sslStream, true);
streamWriter = new StreamWriter(sslStream);

...

sslStream.Write(xml);
sslStream.Flush();

【问题讨论】:

  • 我刚刚想到另一种可能性:代码中的 xml 变量是代表您要发送的一部分 xml,还是代表整个内容?
  • 整个事情,xml 可以是任何东西,也刚刚开始发送具有相同行为的单词 buffalo
  • 你有没有想过这个问题?我想知道 SSL/TLS 在使用非流模式时如何通过分组密码进行流式传输。这个问题在某种程度上证实了我最初的想法,即这是不可能的。

标签: c# ssl


【解决方案1】:

我的猜测是您的 StreamWriter 正在分块您的数据。尝试设置 AutoFlush = true。

【讨论】:

  • 不错的猜测,但我认为紧随其后的冲洗我会做同样的事情。我也尝试过打开自动刷新但没有运气。不过感谢您的建议
猜你喜欢
  • 1970-01-01
  • 2016-05-18
  • 1970-01-01
  • 1970-01-01
  • 2023-03-20
  • 2014-12-06
  • 2019-10-28
  • 2021-04-09
  • 1970-01-01
相关资源
最近更新 更多