1. socket网络编程 (一)
IPV4套接口地址结构:
通用地址结构(适用于任何协议):
linux地址结构代码:
执行:man 7 ip
网络字节序字节序:
网络字节序按照大端字节序
linux中用程序验证字节序
#include<stdio.h>
int main(){
unsigned int a=0x12345678;
unsigned char *p=(unsigned char*)&a;
printf("%0x %0x %0x %0x\n",p[0],p[1],p[2],p[3]);
return 0;
}
使用小端字节序
字节序转化函数
代码示例:
include<stdio.h>
int main(){
unsigned int a=0x12345678;
unsigned char *p=(unsigned char*)&a;
printf("%0x %0x %0x %0x\n",p[0],p[1],p[2],p[3]);
//网络字节序为大端字节序
unsigned int b=htonl(a);
p=(unsigned char*)&b;
printf("%0x %0x %0x %0x\n",p[0],p[1],p[2],p[3]);
return 0;
}
地址转化函数
代码示例:
#include<stdio.h>
#include<arpa/inet.h>
int main(){
unsigned long addr =inet_addr("192.168.2.104");
printf("addr=%u\n",ntohl(addr));
struct in_addr ipaddr;
ipaddr.s_addr=addr;
printf("%s\n",inet_ntoa(ipaddr));
return 0;
}