为了账号安全,请及时绑定邮箱和手机立即绑定

以下内容是关于recvfrom()的最后一个参数问题,求解释!

以下内容是关于recvfrom()的最后一个参数问题,求解释!

绝地无双 2021-11-07 14:10:34
i = sizeof(struct sockaddr);iLen = recvfrom(mfg_fd,(char *)RecvBuf,RECV_MAX_LEN,0,(struct sockaddr*)&remote,&i);问题一:最后一个参数,为什么sento()是int,而recvfrom必须是指针问题二:我可以节省变量i,而直接用& sizeof(struct sockaddr)做最后一个参数吗?请指教~~
查看完整描述

2 回答

?
青春有我

TA贡献1784条经验 获得超8个赞

这个就看socket 的声明吧, 都这么做没办法, 这个确实很蠢。
问题2 不可以
sizeof(struct sockaddr) 对于程序来说就是个常数, 你能用 &2 来代替指向2的指针么,这个不行,你说的就不行。

查看完整回答
反对 回复 2021-11-09
?
米脂

TA贡献1836条经验 获得超3个赞

输入参数是把数据传入函数用的参数。
输出参数是把函数结果传出到调用语句的程序块用的参数。
输出参数是函数的一个参数,写在函数名后的括号里的参数。返回值是 函数里的 return 语句送回的值,送到调用语句的表达式里。
recvBuf 是recvfrom 的 输出参数,存收到的内容,不要初始化。
sendBuf 是sendto 的 输入参数,存送出的内容,要初始化。

查看完整回答
反对 回复 2021-11-09
  • 2 回答
  • 0 关注
  • 269 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信