关于DGRAM接收端port问题

关于DGRAM接收端port问题

老师,您好!
在课程中和我自己的代码实现中,都出现这样一个BUG,为什么接收端的Port打印出来并不是目标端口,是数据转换的问题吗,还是说recvfrom这个参数只能获得发送端的IP地址,而不能获得Port端口号。(既然能接收到,说明进程、端口是没有问题呀,但为什么输出一个很像随机数的东西)

请老师指教~谢谢老师!
图片描述
图片描述

正在回答

登陆购买课程后可参与讨论,去登陆

1回答
创建套接字的时候,只有通过bind绑定了端口才是固定端口,如果没有绑定系统就会随机分配一个端口,一般我们在服务器端会进行bind,客户端没有进行bind,这样客户端的端口就是随机分配的呢!
可以自己去看一下代码,是否在创建完套接字后进行了进行了bind!
  • 慕斯卡5526745 提问者 #1

    对的,我的代码客户端并没有bind。原来如此,也就是说,客户端给服务端发送消息时,必须是服务端绑定的端口,因为已经进行了bind;而客户端并没有进行bind绑定,服务器端接收到的参数中关于这一端口的信息便是一个系统分配的随机值。终于明白下一节课关于UDP并发服务器开发的思想了。

    谢谢老师!


    2024-03-20 04:46:46
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师