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

Значение свойства

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) носителя передачи. Датаграммы могут быть фрагментированы отправляемым узлом (всеми версиями протокола Интернета) или промежуточным маршрутизатором (только для протокола Интернета версии 4). Если датаграмма должна быть фрагментирована и DontFragment задан параметр, датаграмма удаляется, а сообщение об ошибке ПРОТОКОЛА ICMP отправляется отправителю датаграммы.

Установка этого свойства для сокета TCP не влияет.

Применяется к