Abs*_*lom 2 c# sockets multicast igmp
我们有一个C#应用程序,可以加入和接收来自多播组的数据.这很好用.我们现在想要支持IGMPv3并且能够在加入多播组时指定源的IP.从MSDN文档中,我看不到如何执行此操作.我发现以下链接似乎回答了我的问题.
http://social.msdn.microsoft.com/Forums/en/netfxnetcom/thread/e8063f6d-22f5-445e-a00c-bf46b46c1561
这是我实现这个的方式:
byte[] membershipAddresses = new byte[12]; // 3 IPs * 4 bytes (IPv4)
Buffer.BlockCopy(multicastIp.GetAddressBytes(), 0, membershipAddresses, 0, 4);
Buffer.BlockCopy(sourceIp.GetAddressBytes(), 0, membershipAddresses, 4, 4);
Buffer.BlockCopy(localIp.GetAddressBytes(), 0, membershipAddresses, 8, 4);
socket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.AddMembership, membershipAddresses);
Run Code Online (Sandbox Code Playgroud)
但是当我用这个错误调用SetSocketOption()时,我得到一个SocketException : The requested address is not valid in its context.
有人能指出我在这里做错了吗?谢谢!
| 归档时间: |
|
| 查看次数: |
3344 次 |
| 最近记录: |