UDP多播:由计算机接收,但不是由应用程序接收

时间:2012-11-23 21:12:55

标签: c linux sockets multicast

我正在尝试在Linux上设置一个应用程序,通过WiFi通过UDP多播接收MIDI数据。

Wireshark显示我的机器(paste from wireshark)收到了从MIDI控制器发送的数据包。

我用来监听网络流量并生成ALSA midi事件(称为multimidicast)的实用程序的源代码设置了像this这样的侦听套接字。基本上它设置了20个套接字,将它们绑定到端口21928-21948,使用IP_ADD_MEMBERSHIP将setsockopt()调用到组“225.0.0.37”,然后开始监听。据我所知,这是关于如何监听UDP多播流量的所有教程和建议。

但是,该实用程序不会接收数据。

如果从我的PC上将数据包发送到“225.0.0.37”(Python中为s.sendto("hello", ("225.0.0.37", 21928)))的相关端口,该工具仍然无法接收数据。如果我发送到localhost(s.sendto("hello", ("", 21928)))上的端口,则 接收数据。

我一直在阅读和尝试很多,但我无法弄清楚它是什么我错过了。我甚至不确定这是我正在使用的代码或我的盒子配置中的错误。

有人可以对此发光吗?

0 个答案:

没有答案
相关问题