Socket.DontFragment Eigenschaft

Definition

Ruft einen Wert ab, der angibt, ob der Socket die Fragmentierung von IP-Datagrammen (Internet Protocol) zulässt, oder legt diesen fest.

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

Eigenschaftswert

true , wenn keine Socket Datagrammfragmentierung zulässt, falseandernfalls . Der Standardwert ist true.

Ausnahmen

Der Socket ist nicht in der InterNetwork Familie.

Fehler beim Versuch, auf den Socket zuzugreifen.

Der Socket wurde geschlossen.

Beispiele

Im folgenden Codebeispiel wird die Verwendung des DontFragment-Attributs veranschaulicht.

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}");
}

Hinweise

Datagramme erfordern eine Fragmentierung, wenn ihre Größe die MAXIMALE Übertragungseinheit (Maximum Transfer Unit, MTU) des Übertragungsmediums überschreitet. Datagramme können vom sendenden Host (alle Internetprotokollversionen) oder einem Zwischenrouter (nur Internetprotokollversion 4) fragmentiert sein. Wenn ein Datagramm fragmentiert werden muss und die DontFragment Option festgelegt ist, wird das Datagramm verworfen, und eine ICMP-Fehlermeldung (Internet Control Message Protocol) wird an den Absender des Datagramms zurückgesendet.

Das Festlegen dieser Eigenschaft für einen TCP-Socket (Transmission Control Protocol) hat keine Auswirkung.

Gilt für: