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

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)做最后一个参数吗?
请指教~~

绝地无双
浏览 270回答 2
2回答

青春有我

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

米脂

输入参数是把数据传入函数用的参数。输出参数是把函数结果传出到调用语句的程序块用的参数。输出参数是函数的一个参数,写在函数名后的括号里的参数。返回值是 函数里的 return 语句送回的值,送到调用语句的表达式里。recvBuf 是recvfrom 的 输出参数,存收到的内容,不要初始化。sendBuf 是sendto 的 输入参数,存送出的内容,要初始化。
打开App,查看更多内容
随时随地看视频慕课网APP