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

屬性值

trueSocket如果 不允許資料報片段,則為 ,否則為 false。 預設為 true

例外狀況

套接字不在系列中 InterNetwork

嘗試存取通訊端時發生錯誤。

範例

下列程式代碼範例示範 如何使用 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) 套接字沒有任何作用。

適用於