Socket.DontFragment Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает или задает значение, указывающее, разрешает ли объект Socket выполнение фрагментации датаграмм протокола 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
Значение свойства
true
Значение , если не допускает фрагментацию датаграмм; в Socket противном случае — значение false
. Значение по умолчанию — true
.
Исключения
Сокет отсутствует в семействе InterNetwork .
Произошла ошибка при попытке доступа к сокету.
Socket был закрыт.
Примеры
В следующем примере кода демонстрируется использование DontFragment свойство.
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}");
}
Комментарии
Датаграммы требуют фрагментации, если их размер превышает максимальную единицу передачи (MTU) носителя передачи. Датаграммы могут быть фрагментированы отправляемым узлом (все версии протокола Internet Protocol) или промежуточным маршрутизатором (только протоколОм Интернета версии 4). Если датаграмма должна быть фрагментирована и DontFragment задан параметр, датаграмма отклоняется, а сообщение об ошибке ICMP отправляется обратно отправителю датаграммы.
Установка этого свойства в сокете TCP не оказывает никакого влияния.