1 第一点要注意:此函数用在UDP通信中;
2 第二点要注意:此函数在UDP的服务器与客户端中参数:struct sockaddr *from用法是不一样的;
2.1 在服务器端中
使用前from是未知的,即定义后,未对其初始化,就给revcfrom使用,当完成recvfrom调用后
from才被赋值,即存储了客户端的ip,此时接收到的from是网络字节序,可以用ntoa(from)转换成char *类型的ip
字符,然后你在调试时就以类似(注意是有类似)[c中] printf("from ip: %s\n",ntoa(from));【qt中】qDebug()<<...;
[c++中]std::cout<<...;[MFC中]TRACE(类似printf的格式);[python中]...略(吐舌头,已累成狗...)。
2.2 在客户端中
from使用前是已知即sever的ip,客户端出生就是要求它有一项技能就是知道它的服务器ip是哪个。客户端同学,如果这点
都不知道,你要往哪连接 呀,那你干嘛来了,(运行后)来占用pc上资源呢,客户端大佬?(想来客户端也挺委屈的,
生来身价就不一样,你有求于人, 事不能自己干得叫别人服务你才能完成,只能态度很“端正(跟孙子似供着服务器大爷,
哈!)”的...略。
3 参数详解
(更新中...)
本文详细解析UDP通信中recvfrom函数的使用方法,重点对比服务器端与客户端的不同应用方式,包括参数struct sockaddr *from在两种场景下的初始化及赋值过程,以及如何获取并转换客户端IP。

1518

被折叠的 条评论
为什么被折叠?



