Socket.DontFragment Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Obtém ou define um valor que especifica se os Socket datagramas de IP (Protocolo de Internet) são fragmentados.
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
Valor da propriedade
true se não Socket permitir a fragmentação de datagram; caso contrário, false. O padrão é true.
Exceções
O soquete não está na InterNetwork família.
Erro ao tentar acessar o soquete.
O Socket foi fechado.
Exemplos
O exemplo de código a seguir demonstra o uso da DontFragment propriedade.
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}");
}
Comentários
Os datagramas exigem fragmentação quando seu tamanho excede a MTU (Unidade de Transferência Máxima) do meio de transmissão. Os datagrams podem ser fragmentados pelo host de envio (todas as versões do Protocolo da Internet) ou por um roteador intermediário (somente o Protocolo de Internet Versão 4). Se um datagram precisar ser fragmentado e a opção DontFragment estiver definida, o datagrama será descartado e uma mensagem de erro ICMP (Internet Control Message Protocol) será enviada de volta ao remetente do datagram.
Definir essa propriedade em um soquete TCP (Protocolo de Controle de Transmissão) não tem efeito.