Socket.DontFragment Proprietà

Definizione

Ottiene o imposta un valore che specifica se la classe Socket consente la frammentazione dei datagrammi IP (Internet Protocol).

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

Valore della proprietà

true se l'oggetto non consente la frammentazione del Socket datagram; in caso contrario, false. Il valore predefinito è true.

Eccezioni

Il socket non è nella InterNetwork famiglia.

Si è verificato un errore durante il tentativo di accesso al socket.

L'oggetto Socket è stato chiuso.

Esempio

Nell'esempio di codice seguente viene illustrato l'uso DontFragment della proprietà.

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}", 
        udpSocket->DontFragment);
    Console::WriteLine("  EnableBroadcast {0}", 
        udpSocket->EnableBroadcast);
    Console::WriteLine("  MulticastLoopback {0}", 
        udpSocket->MulticastLoopback);
}
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}");
}

Commenti

I datagrammi richiedono la frammentazione quando le dimensioni superano l'unità di trasferimento massimo (MTU) del mezzo di trasmissione. I datagrammi possono essere frammentati dall'host di invio (tutte le versioni del protocollo Internet) o da un router intermedio (solo Protocollo Internet versione 4). Se un datagram deve essere frammentato e l'opzione DontFragment è impostata, il datagram viene rimosso e viene inviato un messaggio di errore ICMP (Internet Control Message Protocol) al mittente del datagram.

L'impostazione di questa proprietà su un socket TCP (Transmission Control Protocol) non ha alcun effetto.

Si applica a