C#SslStream阅读问题
伙计们,我正在使用SslStream作为服务器来测试我的应用程序,但是我在读取流时遇到了问题。我正在使用以下代码:C#SslStream阅读问题,c#,ssl,sslstream,C#,Ssl,Sslstream,伙计们,我正在使用SslStream作为服务器来测试我的应用程序,但是我在读取流时遇到了问题。我正在使用以下代码: while (true) { int read = sslStream.Read(buffer, 0, buffer.Length); string bufferString = System.Text.Encoding.Default.GetString(buffer);
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
问题是什么?是否有更好的方法读取SSL流?结果与预期完全一致(与SSL流没有直接关系)-您正在转换未读取的字节 若你们想从流中手动读取字符串,你们必须尊重读调用的结果,它告诉你们从流中实际读取了多少字节
string partialString = System.Text.Encoding.Default.GetString(buffer, 0, read);
然后别忘了连接字符串
注意:使用某种读取器(StreamReader
/BinaryReader
)可能是更好的方法