您好,欢迎来到保捱科技网。
搜索
您的当前位置:首页[Linux]sockaddr与sockaddr_in

[Linux]sockaddr与sockaddr_in

来源:保捱科技网

struct  sockaddr {
unsigned short int  sa_family; /* address family, AF_xxx */
char sa_data[14];  /* address */
};

struct  sockaddr_in {
short int sin_family; /* Address family */
unsigned short int sin_port; /* Port number */
struct in_addr sin_addr; /* Internet address */
unsigned char sin_zero[8]; /*to make same size as struct sockaddr */
};
struct in_addr {
unsigned long s_addr;
};

sin_zero用来将sockaddr_in结构填充到与struct sockaddr同样的长度,可以用bzero()或memset()函数将其置为零。指向sockaddr_in的指针和指向sockaddr的指针可以相互转换,这意味着如果一个函数所需参数类型是sockaddr类型时,你可以在函数调用的时候将一个指向sockaddr_in的指针转换为指向sockaddr的指针;或者相反。

(注:这条是不是针对sa_family为AF_INET时才成立呢?感觉sockaddr_in就是针对sa_family=AF_INET时使用的套接字结构,而sockaddr更像是一个通用的套接字结构,呵呵,从字面上看出的,不知正确否……)

转载于:https://www.cnblogs.com/gaojing/archive/2009/09/12/1565121.html

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- baoaiwan.cn 版权所有 赣ICP备2024042794号-3

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务