System.IO.BinaryReader 以 little-endian 格式读取值。
我有一个 C# 应用程序连接到服务器端的专有网络库。正如人们所期望的那样,服务器端以网络字节顺序发送所有内容,但我发现在客户端处理这个很尴尬,特别是对于无符号值。
UInt32 length = (UInt32)IPAddress.NetworkToHostOrder(reader.ReadInt32());
是我想出的从流中获取正确的无符号值的唯一方法,但这看起来既尴尬又丑陋,我还没有测试这是否会剪掉高阶值,以便我有做有趣的 BitConverter 的东西。
是否有某种方法我缺少围绕整个事物编写一个包装器以避免每次读取时出现这些丑陋的转换?似乎读者应该有一个字节序选项来使这样的事情变得更简单,但我没有遇到任何事情。