Socket 之 revcfrom()参数及用法详解【不断完善中...】

本文详细解析UDP通信中recvfrom函数的使用方法,重点对比服务器端与客户端的不同应用方式,包括参数struct sockaddr *from在两种场景下的初始化及赋值过程,以及如何获取并转换客户端IP。

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 参数详解

 (更新中...)

       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值