伙计们,我正在用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中读取?
发布于 2013-11-08 00:04:38
结果与预期完全相同(与SSL流没有直接关联)--您正在转换没有读取的字节。
如果要从stream手动读取字符串,则必须尊重read的结果,该结果告诉您实际从流读取的字节数很多。
string partialString = System.Text.Encoding.Default.GetString(buffer, 0, read);别忘了连接字符串。
注意:使用某种读取器(StreamReader/BinaryReader)可能是更好的方法。
https://stackoverflow.com/questions/19848730
复制相似问题