struct sockaddr 和 sockaddr_in 的区别
来源:互联网 发布:鼠标软件安装 编辑:程序博客网 时间:2024/06/05 17:48
struct sockaddr结构类型是用来保存socket信息的:
struct sockaddr {
unsigned short sa_family; /* 地址族, AF_xxx */——地址的格式
char sa_data[14]; /* 14 字节的协议地址 */——地址值(IP和端口号)
};
Sockfd是调用socket函数返回的socket描述符,my_addr是一个指向包含有本机IP地址及端口号等信息的sockaddr类型的指针;addrlen常被设置为sizeof(struct sockaddr)。
struct sockaddr结构类型是用来保存socket信息的:
struct sockaddr {
unsigned short sa_family; /* 地址族, AF_xxx */
char sa_data[14]; /* 14 字节的协议地址 */
};
sa_family一般为AF_INET,代表Internet(TCP/IP)地址族;sa_data则包含该socket的IP地址和端口号。
另外还有一种结构类型:
struct sockaddr_in {
short int sin_family; /* 地址族 */
unsigned short int sin_port; /* 端口号 */
struct in_addr sin_addr; /* IP地址 */
unsigned char sin_zero[8]; /* 填充0 以保持与struct sockaddr同样大小 */
};
这个结构更方便使用。sin_zero用来将sockaddr_in结构填充到与struct sockaddr同样的长度,可以用bzero()或memset()函数将其置为零。指向sockaddr_in 的指针和指向sockaddr的指针可以相互转换,这意味着如果一个函数所需参数类型是sockaddr时,你可以在函数调用的时候将一个指向 sockaddr_in的指针转换为指向sockaddr的指针;或者相反。
你只要记住,填值的时候使用sockaddr_in结构,而作为函数的
参数传入的时候转换成sockaddr结构就行了,毕竟都是16个字符
长。
struct in_addr {
union {
struct { u_char s_b1,s_b2,s_b3,s_b4; } S_un_b;
struct { u_short s_w1,s_w2; } S_un_w;
u_long S_addr;
} S_un };
- struct sockaddr 和 sockaddr_in 的区别
- 【转】struct sockaddr与struct sockaddr_in的区别和联系
- struct sockaddr与struct sockaddr_in的区别和联系
- 【转】struct sockaddr与struct sockaddr_in的区别和联系
- struct sockaddr与struct sockaddr_in的区别和联系
- struct sockaddr与struct sockaddr_in的区别和联系
- struct sockaddr与struct sockaddr_in的区别和联系
- struct sockaddr与struct sockaddr_in的区别和联系
- struct sockaddr与struct sockaddr_in的区别和联系
- struct sockaddr_in和struct sockaddr区别
- struct sockaddr_in和struct sockaddr区别
- struct sockaddr_in和struct sockaddr区别
- struct sockaddr、sockaddr_in、sockaddr_un的区别和联系
- struct sockaddr、sockaddr_in、sockaddr_un的区别和联系
- sockaddr、sockaddr_in、struct in_addr的区别联系
- sockaddr和sockaddr_in的区别
- sockaddr和sockaddr_in的区别
- sockaddr 和 sockaddr_in的区别
- windows自动开机
- LeetCode027 Remove Element
- SPOJ LIS2 (Another Longest Increasing Subsequence Problem) CDQ求三维偏序+离散化+LIS
- 12-hive 自定义函数
- Android 编码摄像头数据为h.264格式
- struct sockaddr 和 sockaddr_in 的区别
- 蓝桥杯 基础练习 特殊回文数
- PS快捷方式
- Spring MVC框架下调用POI库实现Excel文档导出
- Android 内存泄漏及优化防止OOM——进阶必看篇
- EMC单片机学习三
- CSS:opacity:0,visibility:hidden,display:none的区别
- 名词解释:失压、全失压、断相、失流、掉电(DL645-2007)
- Eclipse最简单添加maven依赖的方式