使用UDP遇到的问题小结

来源:互联网 发布:淘宝新规则修改价格 编辑:程序博客网 时间:2024/05/18 12:05

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

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

目的 : 不限值用户使用的网段,均可收到广播

结果 : sento 失败,提示 : Network is unreachable

解决方法 :

添加一条默认路由(route add -net default dev wlan0),问题解决了

0 0
原创粉丝点击