请问(struct sockaddr *) &client_addr是什么意思?
时间:2011-03-10
来源:互联网
recvfrom函数里面的,源代码是:
- len = recvfrom(sock, buff, sizeof(buff), 0, (struct sockaddr *) &client_addr, &addr_len);
那么请问(struct sockaddr *)有什么作用?(struct sockaddr *)和&client_addr之间要有空格吗?
还有个疑问: 在源程序的开头, 声明变量, 有个是 socklen_t addr_len; 请问这个是什么类型的?
我把它改为int型的也编译运行成功了
作者: hsnowirp 发布时间: 2011-03-10
还有个结构体 truct sockaddr_in 与它它一样
作者: tiany524 发布时间: 2011-03-10
作者: tiany524 发布时间: 2011-03-10
还有个结构体 truct sockaddr_in 与它它一样
tiany524 发表于 2011-3-10 20:12
另外, 如果我这样强制转换类型(struct sockaddr), 就会出错, (struct sockaddr *)指针类型的转换内存中是如何进行的呢?
作者: hsnowirp 发布时间: 2011-03-10
数据结构用做bind、connect、recvfrom、sendto等函数的参数,指明地址信息。
但一般编程中并不直接针对此数据结构操作,而是使用另一个与sockaddr等价的数据结构 struct sockaddr_in
sockaddr_in和sockaddr是并列的结构,指向sockaddr_in的结构体的指针也可以指向
sockadd的结构体,并代替它。也就是说,你可以使用sockaddr_in建立你所需要的信息,
在最后用进行类型转换就可以了
关于这两个结构体晚上内容很多
核心就是
一般编程中并不直接针对此数据结构操作,而是使用另一个与sockaddr等价的数据结构 struct sockaddr_in
作者: tiany524 发布时间: 2011-03-10
再转换回来 传递给 recvfrom
作者: tiany524 发布时间: 2011-03-10
以前的东西也是这么做的
很多人的代码也是这么写的
作者: tiany524 发布时间: 2011-03-10
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28