System.IO.BinaryReader以小端格式读取值。
我有一个C#应用程序,连接到服务器端的专有网络库。服务器端以网络字节顺序发送所有内容,正如人们所期望的那样,但我发现在客户端处理这些内容很麻烦,特别是对于无符号值。
UInt32 length = (UInt32)IPAddress.NetworkToHostOrder(reader.ReadInt32());
这是我想到的唯一从流中获取正确无符号值的方法,但这似乎既笨拙又丑陋。我还没有测试是否只会剪切掉高位值,以至于我必须使用有趣的BitConverter技巧。
除了编写整个包装器来避免每次读取时进行这些丑陋的转换之外,我是否错过了某种方法?似乎应该在读取器上有一个字节序选项,使得像这样的事情更简单,但我还没有找到任何东西。