ネットワークバイト順
1669 ワード
ネットワークのバイト順は、エンド・ツー・エンドのバイト順を使用します.
大端バイトシーケンスとは、高バイトがメモリの低アドレスに格納され、低バイトがメモリの高アドレスに格納されることを意味する.小バイト順が逆です.一般的にx 86マシンは小エンドバイトシーケンスであり、ネットワーク(ネットワークバイトシーケンスと呼ばれる)は大エンドバイトシーケンスを使用する.
#include <stdio.h>
#include <arpa/inet.h>
int main(void)
{
int k = 0x12345678;
printf("%x %x %x %x
",*((char*)&k),*((char*)&k+1),*((char*)&k+2),*((char*)&k+3));
k = htonl(k);
printf("%x %x %x %x
",*((char*)&k),*((char*)&k+1),*((char*)&k+2),*((char*)&k+3));
}
大端バイトシーケンスとは、高バイトがメモリの低アドレスに格納され、低バイトがメモリの高アドレスに格納されることを意味する.小バイト順が逆です.一般的にx 86マシンは小エンドバイトシーケンスであり、ネットワーク(ネットワークバイトシーケンスと呼ばれる)は大エンドバイトシーケンスを使用する.