Есть ли способ предотвратить подключение сокета, соединенного с группой многоадресной передачи, от одноадресных данных, направленных на один и тот же порт?Как сохранить многоадресный сокет от получения одноадресных данных
Возможно, вариант сокета или ioctl? Я видел https://msdn.microsoft.com/en-us/library/windows/desktop/ms738712%28v=vs.85%29.aspx, но это, казалось, предназначалось только для фильтрации того, какие хосты могут отправлять вам многоадресные рассылки, а не кто мог отправлять одноадресные номера вообще.
Я работаю с Qt-приложением, поэтому, если есть способ сделать это изнутри оболочки сокета Qt, тогда большой, если не возвращаться к обычным старым сокетам berkley, это не проблема.
Единственный способ, который я нашел до сих пор, довольно хакерский - создание второго сокета UDP и привязка его к порту, прежде чем привязка многоадресного сокета действительно работает. Я предполагаю, что должно быть что-то лучше, хотя я еще не нашел его.
Вам не нужно использовать гнезда для еркелей, так как Qt использует внутренне на Unix в любом случае. В Windows он использует сокеты Windows. Вы всегда можете получить голый дескриптор из Qt и использовать его для установки параметров сокета. –
Да, извините, если не ясно. Это более то, что я имел в виду, - работая с обычным API сокетов, используя этот дескриптор напрямую. – ultramancool