[FFmpeg-devel] UDP multicasts mixed up on receive due to wrong bind()

Joakim Plate elupus
Thu Oct 16 16:19:24 CEST 2008


Joakim Plate <elupus <at> ecce.se> writes:

> 
> Why not just try to bind to the multicast address if that fails bind to any? 
I 
> suspect winsock filters incoming data based on the multicast groups the said 
> socket is said to have a membership in.
> 
> Joakim
> 

Sadly it seems winsock is quite broken for this situation.. Found this tidbit 
on msdn.

<quote>
The memberships associated with a socket do not necessarily determine which 
datagrams are received by that socket. Incoming multicast packets are accepted 
by the kernel IP layer if any socket has claimed a membership in the 
destination group of the datagram; however, delivery of a multicast datagram 
to a particular socket is based on the destination port (or protocol type, for 
raw sockets), just as with unicast datagrams. To receive multicast datagrams 
sent to a particular port, it is necessary to bind to that local port, leaving 
the local address unspecified (that is, INADDR_ANY). 
</quote>


Joakim





More information about the ffmpeg-devel mailing list