Udostępnij za pośrednictwem


Socket.DontFragment Właściwość

Definicja

Pobiera lub ustawia wartość określającą, czy Socket zezwala na fragmentacje datagramów protokołu internetowego (IP).

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

Wartość właściwości

true jeśli element Socket nie zezwala na fragmentację datagramu; w przeciwnym razie false. Wartość domyślna to true.

Wyjątki

Gniazdo nie znajduje się w InterNetwork rodzinie.

Wystąpił błąd podczas próby uzyskania dostępu do gniazda.

Została zamknięta Socket .

Przykłady

Poniższy przykład kodu przedstawia użycie DontFragment właściwości.

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

Uwagi

Datagramy wymagają fragmentacji, gdy ich rozmiar przekracza maksymalną jednostkę transferu (MTU) nośnika transmisji. Datagramy mogą być fragmentowane przez hosta wysyłającego (wszystkie wersje protokołu internetowego) lub routera pośredniego (tylko protokół internetowy w wersji 4). Jeśli datagram musi zostać podzielony na fragmenty, a DontFragment opcja zostanie ustawiona, datagram zostanie odrzucony, a komunikat o błędzie protokołu ICMP (Internet Control Message Protocol) zostanie wysłany z powrotem do nadawcy datagramu.

Ustawienie tej właściwości w gniazdie protokołu TCP (Transmission Control Protocol) nie ma wpływu.

Dotyczy