使用UDP遇到的问题小结

在使用UDP进行广播通信时,遇到无法接收到广播数据但Wireshark能捕获,以及发送255.255.255.255广播地址提示网络不可达的问题。解决方案包括将绑定地址改为INADDR_ANY以接收广播数据,以及添加默认路由来解决网络不可达问题。了解这些解决方法对于理解UDP广播机制和多网卡环境下的网络配置至关重要。
摘要由CSDN通过智能技术生成

1.接收不到广播数据,但Wireshark可以抓到包

环境 :

1) 两台笔记本电脑绑定的IP地址分别为  0xca80209     0xca8020a

2) 通过 setsockopt() 设置套接字 SO_BROADCAST 标志为1

3) 发送函数 sendto接收函数 recvfrom 

目的 :相互接收广播数据

结果 :发送没问题,接收端未接收到任何广播数据,但单播数据正常

解决方法:

将绑定的地址改为 INADDR_ANY。问题解决了。但是不太清楚这两种方式的具体差别在哪里。这样当我一台设备上存在多个网卡的情况下我必须绑定一个网卡,否则,发送结果可能不是我希望的。


2.广播地址为 255.255.255.255 提示网络不可达。

环境 :

1) 两台笔记本电脑绑定的IP地址均为 INADDR_ANY 

2) 通过 setsockopt() 设置套接字 SO_BROADCAST 标志为1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值