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 にありません。

ソケットへのアクセスを試行しているときにエラーが発生しました。

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) ソケットでこのプロパティを設定しても効果はありません。

適用対象