I don't think this is supported on linux, only on windows. Alan.
On Mon, May 10, 2010 at 11:05 PM, Ylian <ysainthila...@hotmail.com> wrote: > Hi. > > I own the Developer Tools for UPnP Technologies, I widely used set of tools > for building and debugging UPnP related software. I have gotten many > requests to run the tools on MONO and have gotten rid of all the C/C++ > native code and so far, it's working except for one problem: > > I need to bind to UDP port 1900 non-exclusively to receive SSDP multicast > traffic. I use Ubuntu 10.04, MONO 2.4.4 and I get a "SocketException: > Protocol Option not supported" when trying to set UdpClient's > ExclusiveAddressUse property. Are there any alternatives? > > I am also trying to find precedents for UPnP work on MONO. My multicast > socket setup code below (Apache 2.0 license). > > Thanks, > Ylian > opentools.homeip.net > > public class UPnPMulticastSniffer > { > public delegate void PacketHandler(object sender, string Packet, IPEndPoint > Local, IPEndPoint From); > public event PacketHandler OnPacket; > private UdpClient client = null; > > public UPnPMulticastSniffer(IPEndPoint local) > { > client = new UdpClient(local.AddressFamily); > client.ExclusiveAddressUse = false; > client.Client.SetSocketOption(SocketOptionLevel.Socket, > SocketOptionName.ExclusiveAddressUse, false); > client.Client.SetSocketOption(SocketOptionLevel.Socket, > SocketOptionName.ReuseAddress, true); > client.EnableBroadcast = true; > client.Client.Bind(local); > if (local.AddressFamily == AddressFamily.InterNetwork) > client.JoinMulticastGroup(IPAddress.Parse("239.255.255.250"), > local.Address); if (local.AddressFamily == AddressFamily.InterNetworkV6) > client.JoinMulticastGroup((int)local.Address.ScopeId, > IPAddress.Parse("FF02::C")); client.BeginReceive(new > AsyncCallback(OnReceiveSink), null); > } > > public void OnReceiveSink(IAsyncResult ar) > { > IPEndPoint ep = null; > byte[] buf = null; > try { buf = client.EndReceive(ar, ref ep); } catch (Exception) { } > if (buf != null && OnPacket != null) OnPacket(this, > UTF8Encoding.UTF8.GetString(buf, 0, > buf.Length), (IPEndPoint)client.Client.LocalEndPoint, ep); try { > client.BeginReceive(new AsyncCallback(OnReceiveSink), null); } catch > (Exception) { } > } > > public void Dispose() > { > if (client == null) return; > client.Close(); > client = null; > } > } > > ________________________________ > View this message in context: Porting UPnP Tools to MONO - Socket > "ExclusiveAddressUse" problem > Sent from the Mono - General mailing list archive at Nabble.com. > > _______________________________________________ > Mono-list maillist - mono-l...@lists.ximian.com > http://lists.ximian.com/mailman/listinfo/mono-list > > _______________________________________________ Mono-list maillist - Mono-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-list