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;
}

套接字类型

959

被折叠的 条评论
为什么被折叠?



