如何将单个字节放入网络字节顺序?

时间:2014-10-20 21:52:56

标签: c network-programming byte network-protocols bits

所以我有变量:

uint8_t version = 1;
uint8_t ttl = 1;
uint16_t payload_length = 
uint32_t account_identifier = 24027;
uint32_t source_address = 0;
uint32_t destination_address = 0;
uint16_t checksum = 0;
uint16_t protocol = 1;

我想以网络字节顺序生成所有值。

我知道将htons()用于16位值,将htonl()用于32位值。

所以我会这样做:uint32_t source_address = htonl(0);uint16_t checksum = htons(0);

我应该对8位值使用什么?

3 个答案:

答案 0 :(得分:2)

  

我应该对8位值使用什么?

无。 1字节(8位)值没有“字节序”。所以你不必担心它们(这就是为什么它们没有hton功能的原因。)

答案 1 :(得分:1)

8位值只有一个字节,因此它们在哪个字节顺序中确实无关紧要 - 它们将是相同的。所以什么都不用:)。

答案 2 :(得分:0)

  

我应该将什么用于8位值。

无。你不能把一个字节按顺序排列。