网络字节顺序

狂暴风暴

知名会员
已加入
2014年8月6日
留言内容
85
地点
南非鲁德普特
编程经验
10+
不确定在哪里发布;如果在错误的部分,请移动。

我正在写一个从客户端接收数据的服务器。客户端规范指出整数在"network byte order".

我接收到的数据中的前4个字节表示一个(无符号)32位整数,如下所示。问题是假设接收到的整数以网络字节顺序表示时的十进制表示形式是什么?

C#:
 02 00 00 00

该值应为“ 2”,但与"network byte order";除非我完全错了。在此先感谢您的阅读和建议。
 

约翰·H

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
1,076
地点
挪威
编程经验
10+
那是指 字节序 个字节。 .Net字节顺序为"host order"小端(Intel标准),"network order" is big-endian.
例如,整数2 little-endian为{2,0,0,0},big-endian(网络)为{0,0,0,2}。
您拥有诸如BitConverter之类的类,该类具有与字节之间的值转换(以及返回主机顺序的字段IsLittleEndian),具有某些数据类型的HostToNetworkOrder / NetworkToHostOrder方法的IPAddress类。
 

狂暴风暴

知名会员
已加入
2014年8月6日
留言内容
85
地点
南非鲁德普特
编程经验
10+
感谢您的答复和确认,我收到的值不代表'2'十进制。

猜猜我在生成数据的产品或产品文档中发现了一个错误  :(

笔记:
1)
我知道这些类,并且正在使用它们。不知道“ IsLittleEndian”。
2)
它在Intel硬件上运行,因此主机顺序为littleEndian。
 
最佳 底部