字节转换函数
把给定系统所采用的字节序称为主机字节序,为了避免不同类别主机之间在数据交换时由于对于字 节序的不同而导致的差错,引入了网络字节序。
主机字节序到网络字节序
u_long htonl(u_long hostlong);
u_short htons(u_short short);
网络字节序到主机字节序
u_long ntohl(u_long hostlong);
u_short ntohs(u_short short);
IP地址的转换
inet_aton()
将strptr所指的字符串转换成32位的网络字节序二进制值
inet_addr()
功能同上,返回转换后的地址 仅适用于IPV4,出错时返回-1。
局限性:不能用于255.255.255.255的转换
inet_ntoa()
将32位网络字节序二进制地址转换成点分十进制的字符串
inet_pton()
int inet_pton(int af, const char* src ,void* dst)
将IPV4/IPV6 的地址转换成binary格式
使用于IPV4/IPV6 能正确处理255.255.255.255的转换问题
参数:
1.地址协议族(AF_INET或AF_INET6)
2.src:是一个指针(填写分点形式的IP地址(主要指IPV4))
dst:转换的结果给到dst
inet_ntop(int af,const void *src,char *dst,socklen_t size)
把ipv4和ipv6的网络字节序变成本地的字符串形式的IP地址
参数
1.af:地址协议族(AF_INET或AF_INET6)
2.src:是一个指针(32)
3.dst:输出结果为32位点分形式的IP地址
4.size:长度
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/m0_74712453/article/details/132631903