サードパーティのアプリケーションと統合するプロジェクトの途中です。このサードパーティは、ローカル(ループバックアドレス)TCPリスナーを使用して要求を処理し、XMLデータで応答します。XMLの前に送信されるサイズヘッダーはありません。送信は\r\nエスケープシーケンスで単純に閉じられます。これを処理するために私が思いついたのは次のとおりです。
byte[] buffer = new buffer[DefaultBufferSize];
do
{
bytesRead = networkStream.Read(buffer, 0, buffer.Length);
string response = Encoding.UTF8.GetString(buffer, 0, bytesRead);
if (response.EndsWith("\r\n"))
{
isReading = false;
}
} while (isReading);
ここでの主な問題は、ほとんどのXMLデータはエスケープされますが、改行はエスケープされないことです。したがって、データのセグメントを読み取る可能性があり、最後の2文字は、純粋に終了シーケンスと一致する可能性があります。
この問題を回避する方法はありますか、それともサードパーティにバグリクエストを提出する必要がありますか?