在不同的平台,不同的系统中,往往字节序不同,有的采用大端顺序,有的采用小端顺序。在网络编程中为了统一,统统采用网络字节序。网络字节序是大端顺序。
网络字节序有关的转换函数主要有
unsigned short int htons(unsigned short int hostshort):将主机字节序转换成网络字节序,针对无符号short类型进行操作;
unsigned long int htonl(unsigned long int hostlong):将主机字节序转换成网络字节序,针对无符号长整形进行操作;
unsigned short int ntohs(unsigned short int netshort):将网络字节序转换成主机字节序,针对无符号short类型进行操作;
unsigned long int ntohl(unsigned long int netlong):将网络字节序转换成主机字节序,针对无符号长整形进行操作。
对网络字节的操纵函数主要有:
void bzero(void *s, int n):将内存清零,同memset函数;
void bcopy(const void *src, void *dest, int n):复制数据,类似于memcpy函数,不同的是,memcpy如果dest和src弄翻会出错,而bcopy不会出错;
int bcmp(const void *s1, const void *s2, int n):同memcmp函数,比较s1和s2的大小,s1>s2返回正值,s1=s2返回0,否则返回负值。
字符串和网络字节序二进制转换函数:
int inet_pton(int family, const char *src, void *dst):将点分十进制转换成网络字节序的二进制;
const char *inet_ntop(int family, const void *src, char *dst, socklen_t cnt):将网络字节序二进制转换成点分十进制。