Ejemplo n.º 1
0
            public void BroadcastTo(byte[] buffer, int offset, int count, NetworkInfo network)
            {
                if (network.LocalIP.AddressFamily == AddressFamily.InterNetwork)
                {
                    IPAddress broadcastIP = network.BroadcastIP;

                    if (_udpListener.AddressFamily == AddressFamily.InterNetworkV6)
                    {
                        broadcastIP = NetUtilities.ConvertToIPv4MappedIPv6Address(broadcastIP);
                    }

                    try
                    {
                        _udpListener.SendTo(buffer, offset, count, SocketFlags.None, new IPEndPoint(broadcastIP, _listenerPort));
                    }
                    catch (Exception ex)
                    {
                        Debug.Write("LocalPeerDiscovery.Listener.BroadcastTo", ex);
                    }
                }
                else
                {
                    try
                    {
                        _udpListener.SetSocketOption(SocketOptionLevel.IPv6, SocketOptionName.MulticastInterface, network.Interface.GetIPProperties().GetIPv6Properties().Index);
                        _udpListener.SendTo(buffer, offset, count, SocketFlags.None, new IPEndPoint(IPAddress.Parse(IPV6_MULTICAST_IP), _listenerPort));
                    }
                    catch (Exception ex)
                    {
                        Debug.Write("LocalPeerDiscovery.Listener.BroadcastTo", ex);
                    }
                }
            }
Ejemplo n.º 2
0
            public void SendTo(byte[] buffer, int offset, int count, IPAddress remoteIP)
            {
                if ((_udpListener.AddressFamily == AddressFamily.InterNetworkV6) && (remoteIP.AddressFamily == AddressFamily.InterNetwork))
                {
                    remoteIP = NetUtilities.ConvertToIPv4MappedIPv6Address(remoteIP);
                }

                try
                {
                    _udpListener.SendTo(buffer, offset, count, SocketFlags.None, new IPEndPoint(remoteIP, _listenerPort));
                }
                catch (Exception ex)
                {
                    Debug.Write("LocalPeerDiscovery.Listener.SendTo", ex);
                }
            }