字节序转换
#include <my_head.h>
int main(int argc, const char *argv[])
{
//定义一个 4字节 无符号整数
unsigned int num = 0x12345678;
//定义一个 2字节 无符号整数
unsigned short int value = 0x1234;
//调用函数完成 4字节的转换 网络字节序
unsigned int num_net = htonl(num);
//调用函数完成 2字节的转换 网络字节序
unsigned short value_net = htons(value);
//输出转换后的结果
printf("num_net= %#x\n",num_net);
printf("value_net= %#x\n",value_net);
//4字节转换 主机字节序
unsigned int host_num = ntohl(num_net);
//2字节转换 主机字节序
unsigned short host_value=ntohs(value_net);
//输出转换后的结果
printf("host_num=%#x\n",host_num);
printf("host_value=%#x\n",host_value);
return 0;
}
点分十进制
#include <my_head.h>
int main(int argc, const char *argv[])
{
//定义变量指向ip地址
char* ip_ptr = "192.168.125.110"; //点分十进制
//调用函数将 点分十进制 转为 网络字节序
unsigned int ip_network = inet_addr(ip_ptr);
//输出转换后的结果
printf("ip_network= %#x\n",ip_network);
//strncpy(host_ip, inet_ntoa(*src_addr), sizeof(src_ip_str));
//char* host_ip = inet_ntoa(ip_network);
printf("host_ip= %#s\n",inet_ntoa(ip_network));
return 0;
}