代码之家  ›  专栏  ›  技术社区  ›  Brian Vallelunga Linda Lawton - DaImTo

ASP.NET多播UDPClient问题

  •  0
  • Brian Vallelunga Linda Lawton - DaImTo  · 技术社区  · 15 年前

    我正在尝试让我的ASP.NET应用程序侦听多播UDP广播。不幸的是,由于权限/API问题,我似乎陷入了绑定中。

    问题是,我需要允许一个应用程序的多个实例监听同一个IP/端口,因为ASP.NET应用程序的多个螺旋将发生。若要执行此操作,必须将SocketTopionName.ReuseAddress设置为true。问题是这需要我的ASP.NET应用程序不应该拥有的管理权限。

    代码如下:

    public static void Listen(int port)
    {
       var groupAddress = IPAddress.Parse("224.10.10.10");
       var endPoint = new IPEndPoint(groupAddress, port);
       var client = new UdpClient();
    
       client.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
       client.Client.Bind(new IPEndpoint(IPAddress.Any, port)); // Error thrown here       
       client.JoinMulticastGroup(groupAddress);       
    
       var udpState = new UdpState() { Client = client, EndPoint = endPoint };
       client.BeginReceive(OnMessageReceived, udpState); // OnMessageReceived code omitted
    }
    
    2 回复  |  直到 12 年前
        1
  •  0
  •   Brian Vallelunga Linda Lawton - DaImTo    15 年前

    不幸的是,似乎没有管理权这是不可能的。如果有人有其他想法,我想听听。

        2
  •  0
  •   Cairnarvon    12 年前
    client.ExclusiveAddressUse = false;