<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">First, IGMP (like ICMP) is a data-link-level protocol that's implemented by the operating system. It is something that application developers (who live above the operating system) should never concern themselves with.<div><br></div><div>You are apparently referring to "source-specific multicast", which is a type of IP multicast - using a special range of the IP multicast address space - that also specifies a single IP *source* address (for one-to-many multicast). This is more easily implemented - especially over wide-area networks - than traditional many-to-many IP multicast, in which there is no specific multicast source. Operating systems implement both kinds of IP multicast using the IGMP protocol, but once again, application developers (like you) don't need to concern yourself with the workings of the operating system.</div><div><br></div><div>But yes, we (the "LIVE555 Streaming Media" software) implements both kinds of IP multicast: traditional 'any source' multicast (ASM), and 'source-specific multicast (SSM). You can see several examples of this in the "testProgs" demo applications (grep for "SSM" if you care).</div><div><br></div><div>Now, you were apparently referring to the difference between the following two sets of socket options (i.e., for "setsockopt()" calls):</div><div><span class="Apple-tab-span" style="white-space: pre; "> </span>IP_ADD_MEMBERSHIP, <span style="font-family: Calibri, sans-serif; font-size: 15px; ">IP_ADD_SOURCE_MEMBERSHIP (etc.), and</span></div><div><span style="font-family: Calibri, sans-serif; font-size: 15px; "><span class="Apple-tab-span" style="white-space:pre"> </span>MCAST_JOIN_GROUP, MCAST_JOIN_SOURCE_GROUP (etc.)</span></div><div><span style="font-family: Calibri, sans-serif; font-size: 15px; ">These are used for two different APIs (to the *same* IGMP functionality). The first set of socket options - that we use - are used with an API that uses IP4 IP addresses only (see RFC 3478, section 4). The second set of socket options are used with an alternative API that uses IP addresses that might be either IPv4 or IPv6 (see RFC 3478, section 5). (If only IPv4 addresses are being used, then the two APIs are equivalent, but some older systems might not support the second API; that's why we don't use it.)</span></div><br><br><div apple-content-edited="true">
<span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; ">Ross Finlayson<br>Live Networks, Inc.<br><a href="http://www.live555.com/">http://www.live555.com/</a></span></span>
</div>
<br></body></html>