2012-07-07 48 views
1

我是新来的原始套接字,我正在玩ip头。 我注意到,不过 ip->ip_hl = sizeof(struct ip) >> 2 //works fine; ip->ip_hl = hton(sizeof(struct ip) >> 2) //will not work;原始插座。 IP头何时使用hton

什么我不明白的是,为什么不将所有的网络秩序,而不是在这种情况下,主机顺序的编号? 判断何时使用网络订单/主机订单的一般规则是什么?

由于

回答

1

htons为16位值。 htonl适用于32位值。至于hton(没有后缀),我甚至不确定是否存在。

标头长度只占用一个字节(实际上是一个字节的部分)。您无需翻转任何字节即可将其转换为正确的格式。因此,对于8位值,不存在像htonshtonl那样的宏。

+0

谢谢,我明白了 – Grey 2012-07-07 00:46:30