Socket.DontFragment Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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.