インタフェース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がプロトコル・スタックに沿って不明な場合- 関連項目:
-