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 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 will have no effect.

Applies to