// Program to Determine Host Byte Order
#include <stdio.h>
int main(int argc, char **argv) {
union {
short s;
char c[sizeof(short)];
}un;
un.s = 0x0102;
if (sizeof(short) == 2) {
if (un.c[0] == 1 && un.c[1] == 2)
printf("big-endian\n");
else if (un.c[0] == 2 && un.c[1] == 1)
printf("little-endian\n");
else
printf("unknown\n");
}
else {
printf("sizeof(short) = %d\n", sizeof(short));
}
exit(0);
}
خب! حالا تحت شبکه چیکار کنیم.؟...
اونجا یک قرار داد جدید داریم... Network Byte Order
پس به تعدادی تابع جدید نیاز داریم...
htons() , htonl() , ntohl() , ntohs() ,...