尝试使用以下方法设置SocketOption时
listener.SetSocketOption(SocketOptionLevel.IP,
SocketOptionName.AddMembership, new MulticastOption(ipAddress));
我收到以下异常;
请求的地址在其上下文中无效
我的上瘾者是:
Socket listener = new Socket(AddressFamily.InterNetwork,
SocketType.Dgram, ProtocolType.Udp);
和Ip是3.212.x.x
这是因为IP的问题吗?
答案 0 :(得分:2)
问题出在本声明中:
listener.SetSocketOption(SocketOptionLevel.IP,
SocketOptionName.AddMembership, new MulticastOption(ipAddress));
MSDN将此构造函数概述为:
public MulticastOption(
IPAddress group
)
所以MulticastOption寻找要广播的组,但我已经通过了localIP,这就是问题所在。
我更改了我的代码:
IPAddress ip = IPAddress.Parse("224.5.6.7");
Socket _socketServer = new Socket(AddressFamily.InterNetwork, SocketType.Dgram,
ProtocolType.Udp);
_socketServer.SetSocketOption(SocketOptionLevel.IP,
SocketOptionName.AddMembership, new MulticastOption(ip));
_socketServer.SetSocketOption(SocketOptionLevel.IP,
SocketOptionName.MulticastTimeToLive, 1);