次のように SslStream から読み取っています。
byte[] data = new byte[tcp.ReceiveBufferSize];
int bytesRead = -1;
do {
bytesRead = stream.Read(data, 0, data.Length);
using (MemoryStream ms = new MemoryStream(data, 0, bytesRead))
using (StreamReader rd = new StreamReader(ms))
{
string returnData = rd.ReadToEnd();
sb.Append(returnData);
}
} while (bytesRead != 0);
ストリームから読み取ります。ただし、ストリームの実際の長さは不明であるため、最後の読み取りでアプリがフリーズするだけです。サンプル メッセージは次のようになります。
HTTP/1.1 200 OK
Content-Type: application/json;charset=utf-8
Content-Length: 11534
Server: Jetty(6.1.x)
{long json data here...}
サーバーはコンテンツの長さを返しますが、ストリーム全体の長さではありません。このストリームを正常に読み取る効率的な方法はありますか?