免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3250 | 回复: 2
打印 上一主题 下一主题

请教关于UDP接受广播和单播报文的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-11-13 20:07 |只看该作者 |倒序浏览
接收UDP报文的时候,如果要socket既能接收单播又能接受广播是不是必须要绑定到ANY地址才行?

假如我的IP是 192.168.1.15/24

在windows下面,我只要绑定到192.168.1.15并且设置广播选项,就可以使用该socket接收到目标地址为192.168.1.15以及192.168.1.255的报文。
但是Linux下面,如果绑定192.168.1.15则只能接收到目标地址为192.168.1.15,如果绑定到192.168.1.255则只能接收到目标地址为192.168.1.255的报文。

Linux下面有没有办法达到Windows那样的效果。

论坛徽章:
0
2 [报告]
发表于 2009-11-14 23:08 |只看该作者
应用层还真不知道如何做。
我能想到就是注册hook函数,把广播包hook出来

论坛徽章:
0
3 [报告]
发表于 2009-11-16 20:13 |只看该作者
我的看法是
struct sockaddr_in server_addr;
server_addr.sin_addr.s_addr=htonl(INADDR_ANY);

可以去试试,
你在linux下用tcp去实现windows下的udp,
tcp和ucp是两个不同的链接方式
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP