Я пытаюсь реализовать Source-Specific Multicasting в С# (в основном, чтобы можно было свободно выбирать любой групповой адрес через Интернет, не рискуя конфликтом). Я следовал этому методу, но Я продолжаю сталкиваться с ошибкой:
в вызове getsockopt или setsockopt указана неизвестная недопустимая или неподдерживаемая опция или уровень
Это классическая ошибка, которая возникает, например, когда вы указываете SocketOptionLevel, который не соответствует SocketOptionName. Тем не менее, я проверил, что использую SocketOptionLevel.IP, который подходит для параметров многоадресной рассылки. Я также пробовал другие, которые вызывают ту же ошибку. Есть ли у вас какие-либо идеи о том, что еще может вызвать это исключение, или что я делаю неправильно?
Вот мой код:
mySocket = UdpClient(localEndPoint);
Buffer.BlockCopy(multicastGroupAddress.GetAddressBytes(), 0, membershipAddresses, 0, 4);
Buffer.BlockCopy(remoteEndPoint.Address.GetAddressBytes(), 0, membershipAddresses, 4, 4);
Buffer.BlockCopy(localEndPoint.Address.GetAddressBytes(), 0, membershipAddresses, 8, 4);
mySocket.Client.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.AddSourceMembership, membershipAddresses);
(Да, явно скопировано из ссылки, я все еще пытаюсь заставить ее работать)
Спасибо !