1

私はrawソケットを初めて使用し、IPヘッダーをいじっています。ip->ip_hl = sizeof(struct ip) >> 2 //works fine; しかし 、私はそれに気づきました ip->ip_hl = hton(sizeof(struct ip) >> 2) //will not work;

私が理解していないのは、この場合、すべての番号をホストの順序ではなくネットワークの順序に変換しないのはなぜですか?ネットワークオーダー/ホストオーダーをいつ使用するかを判断するための一般的なルールは何ですか?

ありがとう

4

1 に答える 1

1

htons16ビット値用です。htonl32ビット値用です。(接尾辞なし)に関してhtonは、それが存在するかどうかさえわかりません。

ヘッダーの長さは1バイト(実際には1バイトの一部)のみを占めます。正しい形式にするためにバイトを反転する必要はありません。したがって、 8ビット値のようhtonsなマクロはありません。htonl

于 2012-07-07T00:35:21.807 に答える