Socket.DontFragment 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取或设置一个值,该值指定 Socket 是否允许将 Internet 协议 (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) 时,需要碎片。 数据报可能由发送主机 (所有 Internet 协议版本) 或中间路由器 (Internet 协议版本 4 仅) 分段。 如果必须对数据报进行分段并 DontFragment 设置 选项,则会丢弃数据报,并将 Internet 控制消息协议 (ICMP) 错误消息发送回数据报的发送方。
在 TCP) 套接字 (传输控制协议上设置此属性不起作用。