Просто любопытно. Это избыточно? Разве вы уже не связаны с сетью, которую хотите использовать? Возможно, это для случая, когда вы привязаны к 0.0.0.0 и хотите прослушивать многоадресные пакеты только с интерфейса X?
Если вы связаны с INADDR_ANY, что является нормальным случаем, IGMP-сообщение объединенной группы отправляется через какой-либо интерфейс NIC, указанный в таблицах маршрутизации, дает кратчайший маршрут к многоадресному адресу.В многосетевых хостах он может понадобиться для выхода через все сетевые адаптеры, поэтому вы можете переключаться между ними по очереди.
Если вы привязаны к определенному сетевому адаптеру, это нене имеет смысла указывать сетевой интерфейс при присоединении.
Если вы привязаны к самому адресу многоадресной рассылки, так что этот сокет может принимать только многоадресные рассылки, а не одноадресную UDP, вы можетенеобходимо выполнить цикл, как в (1), если вы хотите присоединиться через все интерфейсы.