若要在非默认NIC (dvb)上接收多播,请执行以下操作:
SOCK_DGRAM)
。
此时,接收所需多播数据包的唯一方法是在路由表中添加一条规则,通过dvb到达发送方(另一个网络)所在的网络,就好像dvb需要回复组播发送方一样;假设是一种源发送方组播模式。有人知道怎么回事吗?这个问题让我很烦,因为原则上我不知道发送者的ip。
发布于 2011-03-30 11:01:58
你似乎被rp_filter
反向路径过滤刺痛了.如果数据包到达一个没有源地址路由的接口,就会被丢弃。
您可以使用sysctl /proc/sys/net/ipv4/conf/<if>/rp_filter
在每个接口基础上禁用它。
发布于 2011-03-30 09:44:27
绑定多播地址
这绝对是错误的。必须绑定到实际适配器的实际IP地址,即0.0.0.0。
注意到一个常见的错误是绑定"0.0.0.0“
这不是个错误。THat是正确的过程,除非您只想听一个IP地址。
,然后在套接字上接收,甚至是你不感兴趣的多播
我不知道这意味着什么。
原则上我不知道发件人的ip
任何UDP数据报的发件人的IP地址都可以通过套接字API获得。
https://stackoverflow.com/questions/5483779
复制相似问题