常用的主要有四个函数,详见代码:
/*
网络通信中一般都要将主机字节学转换成网络字节序,
另外一段获得数据以后根据自己的情况来决定是否转换
*/
#include <stdio.h>
#include <arpa/inet.h>
int main(){
//htons 转换端口
unsigned short a = 0x0102;
unsigned short b = htons(a);
printf("%0x\n",a);
printf("%0x\n",b);
printf("==============\n");
//htonl 转换IP
char buf[4] = {192, 168, 1, 100};
int num = *(int *)buf;
int sum = htonl(num);
unsigned char* p = (char*)∑
printf("%d %d %d %d\n", *p, *(p+1), *(p+2),*(p+3));
printf("==============\n");
//ntohl
unsigned char buf1[4] = {1,1,168,192};
int num1 = *(int*) buf1;
int sum1 = ntohl(num1);
unsigned char *p1 = (unsigned char*)&sum1;
printf("%d %d %d %d\n",*p1, *(p1+1), *(p1+2),*(p1+3));
printf("==============\n");
//ntohs
unsigned short c = ntohs(b);
printf("%x\n",a);
printf("%x\n",c);
return 0;
}