ASP.NET Multicast UdpClient问题

时间:2009-12-21 17:29:56

标签: asp.net permissions udpclient

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

问题是我需要允许应用程序的多个实例监听相同的IP /端口,因为ASP.NET应用程序会发生多次旋转。为此,必须将SocketOptionName.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 个答案:

答案 0 :(得分:0)

不幸的是,如果没有行政权利,这似乎是不可能的。如果有人有任何其他想法,我很乐意听到他们。

答案 1 :(得分:0)

client.ExclusiveAddressUse = false;