Socket.MulticastLoopback Property


Gets or sets a value that specifies whether outgoing multicast packets are delivered to the sending application.

 property bool MulticastLoopback { bool get(); void set(bool value); };
public bool MulticastLoopback { get; set; }
member this.MulticastLoopback : bool with get, set
Public Property MulticastLoopback As Boolean

Property Value


true if the Socket receives outgoing multicast packets; otherwise, false.


An error occurred when attempting to access the socket.

The Socket has been closed.

The Socket is not in the InterNetwork or InterNetworkV6 families.


The following code example demonstrates the use of the MulticastLoopback property.

static void ConfigureUdpSocket(Socket^ udpSocket)

    // Set the Don't Fragment flag.
    udpSocket->DontFragment = true;
    // Enable broadcast.
    udpSocket->EnableBroadcast = true;
    // Disable multicast loopback.
    udpSocket->MulticastLoopback = false;
    Console::WriteLine("Udp Socket configured:");
    Console::WriteLine("  DontFragment {0}", 
    Console::WriteLine("  EnableBroadcast {0}", 
    Console::WriteLine("  MulticastLoopback {0}", 
static void ConfigureUdpSocket(Socket udpSocket)
    // set the Don't Fragment flag.
    udpSocket.DontFragment = true;
    // Enable broadcast.
    udpSocket.EnableBroadcast = true;

    // Disable multicast loopback.
    udpSocket.MulticastLoopback = false;

    Console.WriteLine("Udp Socket configured:");
    Console.WriteLine($"  DontFragment {udpSocket.DontFragment}");
    Console.WriteLine($"  EnableBroadcast {udpSocket.EnableBroadcast}");
    Console.WriteLine($"  MulticastLoopback {udpSocket.MulticastLoopback}");


Multicast is a scalable method for many-to-many communication on the Internet. A process subscribes to a multicast address; then, any packets sent by a subscribed process are received by every other process subscribed to the multicast address.

Setting this property on a Transmission Control Protocol (TCP) socket has no effect.

Applies to