【问题标题】:C# SslStream Reading IssuesC# SslStream 读取问题
【发布时间】:2013-11-07 23:20:35
【问题描述】:

伙计们,我正在使用 SslStream 作为服务器来测试我的应用程序,但我在从流中读取时遇到了问题。我正在使用以下代码:

        while (true)
        {
            int read = sslStream.Read(buffer, 0, buffer.Length);

            string bufferString = System.Text.Encoding.Default.GetString(buffer);

            // Check for End?
            if (bufferString.IndexOf("\n\r\n", System.StringComparison.Ordinal) != -1)
            {
                break;
            }
        }

问题是第一个循环返回:

G\0\0\0\0\0

第二次运行返回:

ET /whateverman

结果应该是

GET /whateverman

有什么问题,有没有更好的方法从 SslStream 中读取?

【问题讨论】:

    标签: c# ssl sslstream


    【解决方案1】:

    结果完全符合预期(与 SSL 流没有直接关系) - 您正在转换未读取的字节。

    如果您想从 Stream 中手动读取字符串,您必须尊重 Read 调用的结果,该结果告诉您实际从流中读取的字节数。

    string partialString = System.Text.Encoding.Default.GetString(buffer, 0, read);
    

    别忘了连接字符串。

    注意:使用某种阅读器 (StreamReader/BinaryReader) 可能是更好的方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多