我正在尝试在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))
)上的端口,则 接收数据。
我一直在阅读和尝试很多,但我无法弄清楚它是什么我错过了。我甚至不确定这是我正在使用的代码或我的盒子配置中的错误。
有人可以对此发光吗?