インタフェース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.Integer
Boolean
で設定できます:s.setOption(TCP_NODELAY, Boolean.TRUE); // OK - enables TCP_NODELAY, a binary option
Boolean.FALSE
を指定してこのメソッドを使用すると、任意のオプションを無効にできます:s.setOption(TCP_NODELAY, Boolean.FALSE); // OK - disables TCP_NODELAY s.setOption(SO_LINGER, Boolean.FALSE); // OK - disables SO_LINGER
Boolean.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
がプロトコル・スタックに沿って不明な場合- 関連項目:
-