修飾子と型 | フィールドと説明 |
---|---|
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, 2014, Oracle and/or its affiliates. All rights reserved.