struct sockaddr和struct sockaddr_in
2017-08-16 14:09
260 查看
struct sockaddr和struct sockaddr_in这两个结构体用来处理网络通信的地址。
网络中的地址包含3个方面的属性:
1 地址类型: ipv4还是ipv6
2 ip地址
3 端口
linux/socket.h中
linux/in.h定义了struct sockaddr_in结构体
这两个结构体一样大,都是16个字节,而且都有family属性,不同的是:
sockaddr用其余14个字节来表示sa_data,而sockaddr_in把14个字节拆分成sin_port, sin_addr和sin_zero
分别表示端口、ip地址。sin_zero用来填充字节使sockaddr_in和sockaddr保持一样大小。
网络中的地址包含3个方面的属性:
1 地址类型: ipv4还是ipv6
2 ip地址
3 端口
linux/socket.h中
struct sockaddr { sa_family_t sa_family; /* address family, AF_xxx */ char sa_data[14]; /* 14 bytes of protocol address */ };
linux/in.h定义了struct sockaddr_in结构体
struct sockaddr_in { short sin_family; // 2 bytes e.g. AF_INET, AF_INET6 unsigned short sin_port; // 2 bytes e.g. htons(3490) struct in_addr sin_addr; // 4 bytes see struct in_addr, below char sin_zero[8]; // 8 bytes zero this if you want to }; struct in_addr { unsigned long s_addr; // 4 bytes load with inet_pton() };
这两个结构体一样大,都是16个字节,而且都有family属性,不同的是:
sockaddr用其余14个字节来表示sa_data,而sockaddr_in把14个字节拆分成sin_port, sin_addr和sin_zero
分别表示端口、ip地址。sin_zero用来填充字节使sockaddr_in和sockaddr保持一样大小。
相关文章推荐
- struct sockaddr_in(特殊) ---struct sockaddr(通用)(linux网络编程)
- 结构体struct sockaddr_in, struct sockaddr,struct in_addr
- 【转】struct sockaddr与struct sockaddr_in的区别和联系
- struct sockaddr_in和struct sockaddr有什么区别
- struct sockaddr与struct sockaddr_in
- struct sockaddr和struct sockaddr_in结构
- Declaration of 'struct sockaddr_in' will not be visible outside of this function警告的处理
- struct sockaddr与struct sockaddr_in的区别和联系
- struct sockaddr与struct sockaddr_in ,struct sockaddr_un的区别和联系
- struct sockaddr与struct sockaddr_in的区别和联系
- 详解:struct sockaddr_in, struct sockaddr,struct in_addr
- 【C++】Winsock套接字编程,struct sockaddr、sockaddr_in,主机网络字节序
- struct sockaddr与struct sockaddr_in区别
- struct sockaddr与struct sockaddr_in ,struct sockaddr_un的区别和联系
- socket编程总结(三) struct sockaddr_in /struct sockaddr_in6/struct addrinfo 结构体
- 转载 :struct sockaddr_in等Socket编程相关数据类型定义
- struct sockaddr与struct sockaddr_in的区别和联系
- struct sockaddr与struct sockaddr_in ,struct sockaddr_un的区别和联系
- struct_sockaddr与struct_sockaddr_in
- 结构体struct sockaddr sockaddr_in