1 unsigned long 2 ntohl(int x) 3 { 4 unsigned long n; 5 unsigned char *p; 6 7 n = x; 8 p = (unsigned char*)&n; 9 return (p[0]<<24)|(p[1]<<16)|(p[2]<<8)|p[3]; 10 } 11 12 unsigned long 13 htonl(unsigned long h) 14 { 15 unsigned long n; 16 unsigned char *p; 17 18 p = (unsigned char*)&n; 19 p[0] = h>>24; 20 p[1] = h>>16; 21 p[2] = h>>8; 22 p[3] = h; 23 return n; 24 } 25 26 unsigned short 27 ntohs(int x) 28 { 29 unsigned short n; 30 unsigned char *p; 31 32 n = x; 33 p = (unsigned char*)&n; 34 return (p[0]<<8)|p[1]; 35 } 36 37 unsigned short 38 htons(unsigned short h) 39 { 40 unsigned short n; 41 unsigned char *p; 42 43 p = (unsigned char*)&n; 44 p[0] = h>>8; 45 p[1] = h; 46 return n; 47 } 48