インタフェースSocketOptions
- 既知のすべての実装クラス:
DatagramSocketImpl,SocketImpl
public interface SocketOptions
ソケット・オプションを取得/設定するメソッドのインタフェース。 このインタフェースは、
SocketImplおよびDatagramSocketImplによって実装されます。 これらの2つのクラスのサブクラスは、独自のオプションをサポートするために、このインタフェースのgetOption(int)およびsetOption(int, Object)メソッドをオーバーライドする必要があります。
このインタフェースで定義されるメソッドと定数は、実装専用です。 SocketImplまたはDatagramSocketImplをサブクラス化していない 合は、これらを直接使用しません。 Socket、ServerSocket、DatagramSocketおよびMulticastSocketには、これらの各オプションを取得/設定するためのタイプ・セーフ・メソッドがあります。
- 導入されたバージョン:
- 1.1
-
フィールドのサマリー
フィールド修飾子と型フィールド説明static final intこのソケット・オプションについては、StandardSocketOptions.IP_MULTICAST_IFを参照してく さい。static final intこのオプションは、マルチキャスト・パケットが送信される送信インタフェースの設定とフェッチの両方に使用されます。static final intこのソケット・オプションについては、StandardSocketOptions.IP_MULTICAST_LOOPを参照してく さい。static final intこのソケット・オプションについては、StandardSocketOptions.IP_TOSを参照してく さい。static final intソケットのローカル・アドレス・バインディングをフェッチする。static final intこのソケット・オプションについては、StandardSocketOptions.SO_BROADCASTを参照してく さい。static final intこのソケット・オプションについては、StandardSocketOptions.SO_KEEPALIVEを参照してく さい。static final intこのソケット・オプションについては、StandardSocketOptions.SO_LINGERを参照してく さい。static final intこのオプションを設定すると、ソケットで受信したTCP緊急データはソケット入力ストリー を介して受信されます。static final intこのソケット・オプションについては、StandardSocketOptions.SO_RCVBUFを参照してく さい。static final intこのソケット・オプションについては、StandardSocketOptions.SO_REUSEADDRを参照してく さい。static final intこのソケット・オプションについては、StandardSocketOptions.SO_REUSEPORTを参照してく さい。static final intこのソケット・オプションについては、StandardSocketOptions.SO_SNDBUFを参照してく さい。static final intこのオプションは、Socket操作をブロックする際のタイ アウト値の設定とフェッチの両方に使用されます: ServerSocket.accept() ソケットInputStream.read() DatagramSocket.receive()static final intこのソケット・オプションについては、StandardSocketOptions.TCP_NODELAYを参照してく さい。 -
メソッドのサマリー
-
フィールド詳細
-
TCP_NODELAY
@Native static final int TCP_NODELAYこのソケット・オプションについては、StandardSocketOptions.TCP_NODELAYを参照してく さい。- 関連 目:
-
SO_BINDADDR
@Native static final int SO_BINDADDRソケットのローカル・アドレス・バインディングをフェッチする。 このオプションは設定できず、フェッチのみ可能です。 ソケットのデフォルトのローカル・アドレスはINADDR_ANYで、これはマルチホー ・ホスト上の任意のローカル・アドレスを意味します。 マルチホー ・ホストは、このオプションを使用して、アドレスの (ServerSocketまたはDatagramSocketの 合)のいずれか1つへの接続のみを受け入れるか、またはピア (SocketまたはDatagramSocketの 合)へのリターン・アドレスを指定できます。 このオプションの値のタイプはInetAddressです。- 関連 目:
-
SO_REUSEADDR
@Native static final int SO_REUSEADDRこのソケット・オプションについては、StandardSocketOptions.SO_REUSEADDRを参照してく さい。- 関連 目:
-
SO_REUSEPORT
@Native static final int SO_REUSEPORTこのソケット・オプションについては、StandardSocketOptions.SO_REUSEPORTを参照してく さい。- 導入されたバージョン:
- 9
- 関連 目:
-
SO_BROADCAST
@Native static final int SO_BROADCASTこのソケット・オプションについては、StandardSocketOptions.SO_BROADCASTを参照してく さい。- 導入されたバージョン:
- 1.4
- 関連 目:
-
IP_MULTICAST_IF
@Native static final int IP_MULTICAST_IFこのソケット・オプションについては、StandardSocketOptions.IP_MULTICAST_IFを参照してく さい。- 関連 目:
-
IP_MULTICAST_IF2
@Native static final int IP_MULTICAST_IF2このオプションは、マルチキャスト・パケットが送信される送信インタフェースの設定とフェッチの両方に使用されます。 複数のネットワーク・インタフェースを持つホスト上で、アプリケーションがシステ のデフォルト以外を使用する必要がある 合に役立ちます。 このオプションは、IPv4アドレスとIPv6アドレスのいずれかを使用した送信インタフェースの設定をサポートします。- 導入されたバージョン:
- 1.4
- 関連 目:
-
IP_MULTICAST_LOOP
@Native static final int IP_MULTICAST_LOOPこのソケット・オプションについては、StandardSocketOptions.IP_MULTICAST_LOOPを参照してく さい。- 導入されたバージョン:
- 1.4
- 関連 目:
-
IP_TOS
@Native static final int IP_TOSこのソケット・オプションについては、StandardSocketOptions.IP_TOSを参照してく さい。- 導入されたバージョン:
- 1.4
- 関連 目:
-
SO_LINGER
@Native static final int SO_LINGERこのソケット・オプションについては、StandardSocketOptions.SO_LINGERを参照してく さい。このオプションを無効にするには、値を
Boolean.FALSEに設定するか、0より小さい整数をsetOption(int, Object)に設定します。0以上の整数を指定すると、オプションが有効になり、その間隔が長くなります。このオプションが有効な 合、
getOption(int)は遅延間隔を表す整数値を返し、それ以外の 合は戻り値はBoolean.FALSEになります。- 関連 目:
-
SO_TIMEOUT
@Native static final int SO_TIMEOUTこのオプションは、Socket操作をブロックする際のタイ アウト値の設定とフェッチの両方に使用されます:このオプションは、ブロック操作を開始する前に設定する必要があります。 タイ アウトが期限切れになり、操作が引き続きブロックされる 合は、
InterruptedIOExceptionが発生します。 このような 合、Socketはクローズされません。- 関連 目:
-
SO_SNDBUF
@Native static final int SO_SNDBUFこのソケット・オプションについては、StandardSocketOptions.SO_SNDBUFを参照してく さい。- 関連 目:
-
SO_RCVBUF
@Native static final int SO_RCVBUFこのソケット・オプションについては、StandardSocketOptions.SO_RCVBUFを参照してく さい。- 関連 目:
-
SO_KEEPALIVE
@Native static final int SO_KEEPALIVEこのソケット・オプションについては、StandardSocketOptions.SO_KEEPALIVEを参照してく さい。- 関連 目:
-
SO_OOBINLINE
@Native static final int SO_OOBINLINEこのオプションを設定すると、ソケットで受信したTCP緊急データはソケット入力ストリー を介して受信されます。 このオプションが無効になっている 合(それがデフォルト)、緊急データは何の通知もなく 棄されます。- 関連 目:
-
-
メソッドの詳細
-
setOption
void setOption(int optID, Object value) throws SocketException optIDで指定されたオプションを有効または無効にします。 このオプションを有効にし、オプション固有の"value"を使用する 合、これはvalueに渡されます。valueの実際の型はオプション固有であり、予期される型ではないものを渡すのはエラーです:リクエストされたオプションがバイナリの 合、このメソッドを使用してSocketImpl s; ... s.setOption(SO_LINGER, Integer.valueOf(10)); // OK - set SO_LINGER w/ timeout of 10 sec. s.setOption(SO_LINGER, Double.valueOf(10)); // ERROR - expects java.lang.IntegerBooleanで設定できます:s.setOption(TCP_NODELAY, Boolean.TRUE); // OK - enables TCP_NODELAY, a binary optionBoolean.FALSEを指定してこのメソッドを使用すると、任意のオプションを無効にできます:オンとオフという概念を持ち、非ブール・パラメータを必要とするオプションの 合、その値をs.setOption(TCP_NODELAY, Boolean.FALSE); // OK - disables TCP_NODELAY s.setOption(SO_LINGER, Boolean.FALSE); // OK - disables SO_LINGERBoolean.FALSE以外の値に設定すると、暗黙的に有効になります。- パラメータ:
optID−オプションのID (識別子)value−ソケットのオプションのパラメータ- スロー:
SocketException−オプションが認識されない 合、ソケットが閉じられている 合、あるいはなんらかの低レベルのエラーが発生した 合- 関連 目:
-
getOption
オプションの値を取得します。 バイナリ・オプションは、有効になっている 合はBoolean.TRUEを返し、無効になっている 合はBoolean.FALSEを返します。たとえば:SocketImpl s; ... Boolean noDelay = (Boolean)(s.getOption(TCP_NODELAY)); if (noDelay.booleanValue()) { // true if TCP_NODELAY is enabled... ... }特定の型をパラメータとして使用するオプションの 合、このメソッドはパラメータの値を返し、それ以外の 合は
Boolean.FALSEを返します:Object o = s.getOption(SO_LINGER); if (o instanceof Integer) { System.out.print("Linger time is " + ((Integer)o).intValue()); } else { // the true type of o is java.lang.Boolean.FALSE; }- パラメータ:
optID−取得するオプションを指定したint値- 戻り値:
- オプションの値
- スロー:
SocketException- ソケットが閉じられている 合、またはoptIDがプロトコル・スタックに沿って不明な 合- 関連 目:
-