1 台の PC でネットワーク タイプのストリームをエミュレートしたい。
これを行うにStream
は、2 つの基になるストリーム (1 つは読み取り用、もう 1 つは書き込み用) を受け取る を作成しました。
次に、2 つのストリームを交換するこのクラスの 2 つのインスタンスを作成します。現在MemoryStream
、2 つの基になるストリームとして s を使用しています。
私が今抱えている問題は、X バイトを a に書き込むとMemoryStream
、その位置が X になり、次に aRead
を実行すると、ストリームの最後にいるため、データが得られないことです。
私は通常、いくつかの読み取り/書き込みを行うことを考えると (そのため、書き込みのたびに位置を 0 にリセットすることはできません) 、この動作を得るために何を使用できますか?Stream
事実上、ストリームの形式で読み書きできる一種のバイト キューが必要です。
すなわち(実際のメソッド引数を無視する)
MyStream.Write({ 1, 2, 3, 4, 5, 6 });
MyStream.Write({ 7, 8 });
MyStream.Read(3) // Returns { 1, 2, 3 }
MyStream.Read(4) // Returns { 4, 5, 6, 7 }