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