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