套接字错误请求的地址在其上下文中无效

本文关键字:上下文 无效 地址 错误 请求 套接字 | 更新日期: 2023-09-27 18:28:58

尝试使用设置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的问题吗?

套接字错误请求的地址在其上下文中无效

问题在于以下语句:

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);