System.IO.BinaryReaderは、リトルエンディアン形式で値を読み取ります。
サーバー側のプロプライエタリネットワークライブラリに接続するC#アプリケーションがあります。サーバー側は、予想どおり、すべてをネットワークバイト順に送信しますが、クライアント側でこれを処理することは、特に符号なしの値の場合、厄介であることがわかります。
UInt32 length = (UInt32)IPAddress.NetworkToHostOrder(reader.ReadInt32());
ストリームから正しい符号なしの値を取得するために私が思いついた唯一の方法ですが、これは厄介で醜いようです。それが高次の値を切り取るだけかどうかはまだテストしていません。楽しいBitConverterのことをするために。
すべての読み取りでこれらの醜い変換を回避するために、全体の周りにラッパーを書くことを逃している方法はありますか?このようなことを簡単にするために、リーダーにはエンディアンのオプションがあるはずのようですが、私は何も見つけていません。