title: UDP Multicast: received by computer but not by application
body: <p>I'm trying to set up an application on Linux to receive MIDI data over UDP multicast via WiFi. </p>
  
  <p>Wireshark shows that the packets sent from the MIDI controller are received by my machine (<a href="http://pastebin.com/b1Vb8HAh" rel="nofollow">paste from wireshark</a>).</p>
  
  <p>The source code from the utility I'm using to listen for network traffic and produce ALSA midi events (called <a href="http://llg.cubic.org/tools/multimidicast/" rel="nofollow">multimidicast</a>) sets up listening sockets like <a href="http://pastebin.com/RVAn8XDW" rel="nofollow">this</a>. Basically it sets up 20 sockets, binds them to ports 21928-21948, calls <code>setsockopt()</code> with IP_ADD_MEMBERSHIP to the group for "225.0.0.37", and then starts listening. This is, as far as I can see, in line with all tutorials and advice on how to listen for UDP multicast traffic. </p>
  
  <p>However, the utility does not receive data.</p>
  
  <p>If, from my PC, I send packets to the relevant ports on "225.0.0.37" (<code>s.sendto("hello", ("225.0.0.37", 21928))</code> in Python), the tool still doesn't receive the data. If I send to the ports on localhost (<code>s.sendto("hello", ("", 21928))</code>), it <em>does</em> receive the data.</p>
  
  <p>I've been reading and experimenting quite a lot, but I can't work out what it is I'm missing. I'm not even sure whether it's an error in the code I'm using or in my box's configuration.</p>
  
  <p>Could anybody shine any light on this?</p>