このクラスによって定義される各ソケット・オプションのname
は、フィールド名です。
このリリースでは、ここで定義されるソケットオプションは、channels
パッケージ内のnetwork
チャネルによって使用されます。
- 導入されたバージョン:
- 1.7
-
フィールドのサマリー
修飾子と型フィールド説明static final SocketOption<NetworkInterface>
IP (Internet Protocol)マルチキャスト・データグラムのネットワーク・インタフェース。static final SocketOption<Boolean>
IP (Internet Protocol)マルチキャスト・データグラムのループ・バック。static final SocketOption<Integer>
IP (Internet Protocol)マルチキャスト・データグラムの有効期間。static final SocketOption<Integer>
IP (Internet Protocol)ヘッダーのサービス・タイプ(ToS)。static final SocketOption<Boolean>
ブロードキャスト・データグラムの転送を許可します。static final SocketOption<Boolean>
接続をキープアライブにします。static final SocketOption<Integer>
閉じるときにデータが存在する場合は遅延します。static final SocketOption<Integer>
ソケット受信バッファのサイズ。static final SocketOption<Boolean>
アドレスを再利用します。static final SocketOption<Boolean>
ポートを再利用します。static final SocketOption<Integer>
ソケット送信バッファのサイズ。static final SocketOption<Boolean>
Nagleアルゴリズムを無効にします。 -
メソッドのサマリー
-
フィールド詳細
-
SO_BROADCAST
public static final SocketOption<Boolean> SO_BROADCASTブロードキャスト・データグラムの転送を許可します。このソケット・オプションの値は、オプションが有効か無効かを示す
Boolean
です。 このオプションは、IPv4
ブロードキャスト・アドレスに送信するデータグラム型ソケットに固有のものです。 ソケット・オプションが有効な場合、ソケットを使用してブロードキャスト・データグラムを送信できます。このソケット・オプションの初期値は
FALSE
です。 このソケット・オプションはいつでも有効または無効にできます。 一部のオペレーティング・システムでは、このオプションを有効するため、つまりブロードキャスト・データグラムを送信するために、実装固有の特権でJava仮想マシンを起動する必要があります。 -
SO_KEEPALIVE
public static final SocketOption<Boolean> SO_KEEPALIVE接続をキープアライブにします。このソケット・オプションの値は、オプションが有効か無効かを示す
Boolean
です。SO_KEEPALIVE
オプションが有効な場合、オペレーティング・システムは、そのままでは接続がアイドル状態になっているときに、キープアライブ・メカニズムを使用して、接続の他方の端を定期的にプローブすることがあります。 キープ・アライブ・メカニズムの正確なセマンティックスはシステムによって異なるため、未指定です。このソケット・オプションの初期値は
FALSE
です。 このソケット・オプションはいつでも有効または無効にできます。 -
SO_SNDBUF
public static final SocketOption<Integer> SO_SNDBUFソケット送信バッファのサイズ。このソケット・オプションの値は、ソケット送信バッファのサイズ(バイト)を表す
Integer
です。 ソケット送信バッファとは、ネットワーク実装で使用される出力バッファのことです。 大規模な接続では、この値を増やさなければいけない可能性があります。 このソケット・オプションの値は、バッファのサイズを合わせるための実装に対するヒントであり、実際のサイズは異なる場合があります。 このソケット・オプションを照会すれば実際のサイズを取得できます。データグラム型ソケットの場合、送信バッファのサイズのため、ソケットによって送信できるデータグラムのサイズが制限される場合があります。 バッファ・サイズより大きいデータグラムが送信されるか破棄されるかは、システムによって異なります。
ソケットの送信バッファの初期/デフォルト・サイズや、許容される値の範囲は、システムによって異なります。ただし、負のサイズは許可されません。 ソケットの送信バッファを最大サイズより大きく設定しようとすると、バッファは最大サイズに設定されます。
実装では、ソケットのバインドまたは接続の前にこのソケット・オプションを設定できます。 ある実装で、ソケットのバインド後にソケット送信バッファを変更できるかどうかは、システムに依存します。
-
SO_RCVBUF
public static final SocketOption<Integer> SO_RCVBUFソケット受信バッファのサイズ。このソケット・オプションの値は、ソケット受信バッファのサイズ(バイト)を表す
Integer
です。 ソケット受信バッファとは、ネットワーク実装で使用される入力バッファのことです。 大規模な接続ではこの値を増やさなければいけない可能性があるほか、受信データの潜在的なバックログを制限するためにこの値を減らさなければいけない可能性もあります。 このソケット・オプションの値は、バッファのサイズを合わせるための実装に対するヒントであり、実際のサイズは異なる場合があります。データグラム型ソケットの場合、受信バッファのサイズのため、受信できるデータグラムのサイズが制限される場合があります。 バッファ・サイズより大きいデータグラムが受信されるかどうかは、システムによって異なります。 ソケットの受信バッファを増やすことは、データグラムが、処理できる速度より速くまとめて到着する場合には重要となることがあります。
ストリーム型ソケットとTCP/IPプロトコルの場合、TCP受信ウィンドウのサイズをリモート・ピアに通知するときに、ソケットの受信バッファのサイズが使われることがあります。
ソケットの受信バッファの初期/デフォルト・サイズや、許容される値の範囲は、システムによって異なります。ただし、負のサイズは許されません。 ソケットの受信バッファを最大サイズより大きく設定しようとすると、バッファは最大サイズに設定されます。
実装では、ソケットのバインドまたは接続の前にこのソケット・オプションを設定できます。 ある実装で、ソケットのバインド後にソケット受信バッファを変更できるかどうかは、システムに依存します。
-
SO_REUSEADDR
public static final SocketOption<Boolean> SO_REUSEADDRアドレスを再利用します。このソケット・オプションの値は、オプションが有効か無効かを示す
Boolean
です。 このソケット・オプションの正確なセマンティックスは、ソケットの型やシステムによって異なります。ストリーム型ソケットの場合、このソケット・オプションは通常、ソケット・アドレスに関連する前の接続がTIME_WAIT状態であるときに、そのソケット・アドレスにソケットをバインドできるかどうかを決定します。 セマンティックスが異なり、前の接続がこの状態にあるときにソケットをバインドするためにソケット・オプションが有効になっている必要がない実装では、このオプションが無視されることもあります。
データグラム型ソケットの場合、ソケット・オプションは、複数のプログラムを同じアドレスにバインドできるようにするために使用されます。 このオプションは、ソケットをIP (Internet Protocol)マルチキャストに使う予定の場合は、有効にするべきです。
実装では、ソケットのバインドまたは接続の前にこのソケット・オプションを設定できます。 ソケットがバインドされたあとにこのソケット・オプションの値を変更しても、何の効果もありません。 このソケット・オプションのデフォルト値はシステムによって異なります。
-
SO_REUSEPORT
public static final SocketOption<Boolean> SO_REUSEPORTポートを再利用します。このソケット・オプションの値は、オプションが有効か無効かを示す
Boolean
です。 このソケット・オプションの正確なセマンティックスは、ソケットの型やシステムによって異なります。ストリーム指向のソケットの場合、このソケット・オプションは、通常、複数のリスニング・ソケットを同じアドレスと同じポートの両方にバインドすることを許可します。
データグラム指向のソケットの場合、socketオプションは、通常、複数のUDPソケットを同じアドレスとポートにバインドすることを許可します。
実装では、ソケットのバインドまたは接続の前にこのソケット・オプションを設定できます。 ソケットがバインドされたあとにこのソケット・オプションの値を変更しても、何の効果もありません。
- 導入されたバージョン:
- 9
-
SO_LINGER
public static final SocketOption<Integer> SO_LINGER閉じるときにデータが存在する場合は遅延します。このソケット・オプションの値は、未送信データがソケットのキューに入れられたり、ソケットを閉じるためのメソッドが呼び出されたりした場合に実行されるアクションを制御する
Integer
です。 ソケット・オプションの値がゼロ以上の場合、その値は、遅延間隔と呼ばれるタイム・アウト値(秒)を表しています。 遅延間隔とは、オペレーティング・システムが未送信データの送信を試みたりデータ送信が不可能であると判断したりする間に、close
メソッドがブロックするタイム・アウトのことです。 ソケット・オプションの値がゼロより小さい場合、オプションは無効になります。 その場合、close
メソッドは未送信データが送信されるまで待機しません。オペレーティング・システムは可能であれば、接続が閉じられる前にすべての未送信データを送信します。このソケット・オプションは、
ブロック
・モードで構成されているソケットのみで使用することを意図しています。 非ブロック・ソケットでこのオプションを有効にした場合のclose
メソッドの動作は、未定義となります。このソケット・オプションの初期値は、オプションが無効であることを意味する負の値になります。 オプションの有効化や遅延間隔の変更は、いつでも行えます。 遅延間隔の最大値はシステムに依存します。 遅延間隔を最大値より大きな値に設定した場合、遅延間隔は最大値に設定されます。
-
IP_TOS
public static final SocketOption<Integer> IP_TOSIP (Internet Protocol)ヘッダーのサービス・タイプ(ToS)。このソケット・オプションの値は、ソケットによって
IPv4
ソケットに送信されるIPパケット内のToSオクテットの値を表すInteger
です。 ToSオクテットの解釈はネットワークによって異なり、このクラスでは定義されていません。 ToSオクテットの詳細については、RFC 1349とRFC 2474を参照してください。 ソケット・オプションの値はヒントです。 実装が、値を無視する場合や、特定の値を無視する場合もあります。ToSオクテット内のTOSフィールドの初期/デフォルト値は実装によって異なりますが、一般的には
0
になります。 データグラム型ソケットの場合、ソケットがバインドされたあとはいつでもオプションを構成できます。 オクテットの新しい値は、後続のデータグラムを送信するときに使用されます。 ソケットのバインド前に、このオプションを照会または変更できるかどうかはシステムに依存します。ストリーム型ソケットまたは
IPv6
ソケットでのこのソケット・オプションの動作は、このリリースでは定義されていません。 -
IP_MULTICAST_IF
public static final SocketOption<NetworkInterface> IP_MULTICAST_IFIP (Internet Protocol)マルチキャスト・データグラムのネットワーク・インタフェース。このソケット・オプションの値は、データグラム型ソケットによって送信されるマルチキャスト・データグラムの送出インタフェースを表す
NetworkInterface
です。IPv6
ソケットの場合、このオプションを設定することで、IPv4アドレスに送信されるマルチキャスト・データグラムの送出インタフェースも設定されるかどうかはシステムによって異なります。このソケット・オプションの初期/デフォルト値は、通常はネットワーク・ルーティング表に基づいて、送出インタフェースがオペレーティング・システムによって選択されることを指定する
null
である場合があります。 実装ではソケットのバインド後にこのソケット・オプションを設定できます。 ソケットのバインド前にソケット・オプションを照会または変更できるかどうかはシステムに依存します。- 関連項目:
-
IP_MULTICAST_TTL
public static final SocketOption<Integer> IP_MULTICAST_TTLIP (Internet Protocol)マルチキャスト・データグラムの有効期間。このソケット・オプションの値は
Integer
で、その範囲は0 <= 値 <= 255
です。 これは、データグラム型ソケットによって送信されるマルチキャスト・データグラムの範囲を制御するために使用されます。IPv4
ソケットの場合、オプションは、ソケットによって送信されるマルチキャスト・データグラムでの有効期間(TTL)です。 TTLが0のデータグラムは、ネットワークでは転送されませんが、ローカルで転送されることがあります。IPv6
ソケットの場合、オプションは、ネットワーク上で期限が切れる前にデータグラムが通過することができるホップの数である、ホップ制限です。 IPv6ソケットの場合、IPv4アドレスに送信されるマルチキャスト・データグラムにも有効期間を設定するかどうかはシステムによって異なります。有効期間設定の初期/デフォルト値は、通常は
1
です。 実装ではソケットのバインド後にこのソケット・オプションを設定できます。 ソケットのバインド前にソケット・オプションを照会または変更できるかどうかはシステムに依存します。 -
IP_MULTICAST_LOOP
public static final SocketOption<Boolean> IP_MULTICAST_LOOPIP (Internet Protocol)マルチキャスト・データグラムのループ・バック。このソケット・オプションの値は、マルチキャスト・データグラムのループ・バックを制御する
Boolean
です。 ソケット・オプションの値は、オプションを有効にするかどうかを表します。このソケット・オプションの正確なセマンティックスは、システムによって異なります。 特に、ソケットから送信されたマルチキャスト・データグラムやソケットによって受信されたマルチキャスト・データグラムにループ・バックを適用するかどうかはシステムに依存します。
IPv6
ソケットの場合、IPv4アドレスに送信されたマルチキャスト・データグラムにもオプションを適用するかどうかは、システムによって異なります。このソケット・オプションの初期/デフォルト値は
TRUE
です。 実装ではソケットのバインド後にこのソケット・オプションを設定できます。 ソケットのバインド前にソケット・オプションを照会または変更できるかどうかはシステムに依存します。- 関連項目:
-
TCP_NODELAY
public static final SocketOption<Boolean> TCP_NODELAYNagleアルゴリズムを無効にします。このソケット・オプションの値は、オプションが有効か無効かを示す
Boolean
です。 ソケット・オプションは、TCP/IPプロトコルを使用するストリーム型ソケットに固有です。 TCP/IPはNagleアルゴリズムと呼ばれるアルゴリズムを使用して短いセグメントを合体させ、ネットワークの効率を向上させます。このソケット・オプションのデフォルト値は
FALSE
です。 ソケット・オプションは、合体がパフォーマンスに影響を与えることが分かっている場合にのみ有効にするべきです。 このソケット・オプションはいつでも有効にできます。 つまり、Nagleアルゴリズムを無効にできます。 いったんオプションを有効にして、あとでオプションを無効にできるかどうかはシステムによって異なります。 無効にできない場合は、オプションを無効にするsetOption
メソッドを呼び出しても効果がありません。
-