首页
社区
课程
招聘
[求助]请教一个sock函数的问题
发表于: 2007-7-1 09:52 4572

[求助]请教一个sock函数的问题

2007-7-1 09:52
4572
在C语言里,Socket编程中用到2个结构
结构1:
struct sockaddr{
u_short sa_family;
char sa_data[14];
};

结构2:
struct sockaddr_in{
short sin_family;
u_short sin_port;
struct in_addr sin_addr;
char sin_zeor[8];
};
在调用bind()函数之前人们习惯初始化结构2,但调用bind()函数是却用结构1,比如
struct sockaddr_in server;//定义一个结构,命名server
             .....
bind(ListenSocket,(struct sockaddr *)&server,sizeof(server));
请问中间这个参数(struct sockaddr *)&server是什么意思,难道他把server从sockaddr_in这个结构类型强制转换成 sockaddr 这个结构类型?,如果是,麻烦高手解释一下,谢谢

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 39
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
sockaddr 这个是个统一的接口,所有的伯克利socket函数都使用这个(是协议级的),目前之所以用sockaddr_in 主要是IPv4,如果你做IPv6的开发时,就会发现有sockaddr_in6,或者以前搞IPX网络就是用到sockaddr_ipx之类的东西,所以其实sockaddr_in就是为了填充sockaddr 方便而定义的一个东西罢了,仅供参考 :)
2007-7-1 14:09
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
(struct sockaddr *)&server// 取server 的地址 然后强执转换为 sockaddr指针类型
不知道有没有说错  俺是菜菜
2007-7-1 17:26
0
游客
登录 | 注册 方可回帖
返回
//