Socket.DontFragment 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
取得或設定值,此值指定 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 。
嘗試存取通訊端時發生錯誤。
範例
下列程式代碼範例示範 如何使用 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) 套接字沒有任何作用。