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 o Socket permite que datagramas de protocolo IP sejam 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 o Socket não permitir fragmentação de datagrama; caso contrário, false
. O padrão é true
.
Exceções
O soquete não está na InterNetwork família.
Ocorreu um 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 {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}");
}
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 datagramas podem ser fragmentados pelo host de envio (todas as versões do Protocolo 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 (Protocolo de Mensagem de Controle da Internet) será enviada de volta ao remetente do datagrama.
Definir essa propriedade em um soquete TCP (Protocolo de Controle de Transmissão) não tem efeito.