|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
public interface SocketOptions
ソケットのオプションを取得または設定するメソッドのインタフェースです。このインタフェースは SocketImpl および DatagramSocketImpl によって実装されます。これらのサブクラスで独自のオプションをサポートするには、このインタフェースのメソッドをオーバーライドしてください。
このインタフェースでオプションを指定しているメソッドと定数は、実装のためだけのものです。SocketImpl または DatagramSocketImpl をサブクラス化しない場合は、これらを直接使用しないでください。Socket、ServerSocket、DatagramSocket、および MulticastSocket 内のそれぞれのオプションを取得および設定するための、型に対して安全なメソッドがあるのでそれを使います。
フィールドの概要 | |
---|---|
static int |
IP_MULTICAST_IF
マルチキャストパケットを送信する送出インタフェースをどれにするか設定します。 |
static int |
IP_MULTICAST_IF2
上記と同じです。 |
static int |
IP_MULTICAST_LOOP
このオプションは、マルチキャストデータグラムのローカルループバックを有効または無効にします。 |
static int |
IP_TOS
このオプションは、TCP または UDP ソケットの IP ヘッダのサービスの型またはトラフィッククラスフィールドを設定します。 |
static int |
SO_BINDADDR
ソケットのローカルアドレスへのバインドを取得します。 |
static int |
SO_BROADCAST
ソケットの SO_BROADCAST を設定します。 |
static int |
SO_KEEPALIVE
TCP ソケットに KeepAlive オプションが設定されていて、ソケットを介してどちらの方向にもデータが 2 時間 (注: 実際の値は実装による) の間交換されていない場合、TCP は自動的に KeepAlive プローブをピアへ送信します。 |
static int |
SO_LINGER
linger-on-close タイムアウトを指定します。 |
static int |
SO_OOBINLINE
OOBINLINE オプションが設定されていると、ソケットで受信される TCP 緊急データはすべてソケット入力ストリームを経由して受信されます。 |
static int |
SO_RCVBUF
着信ネットワーク入出力用としてプラットフォームで使われるバッファのサイズのヒントを設定します。 |
static int |
SO_REUSEADDR
ソケットの SO_REUSEADDR を設定します。 |
static int |
SO_SNDBUF
送信ネットワーク入出力用としてプラットフォームで使われるバッファのサイズのヒントを設定します。 |
static int |
SO_TIMEOUT
ソケット操作のブロックにタイムアウトを設定します。 |
static int |
TCP_NODELAY
この接続に使う Nagle のアルゴリズムを無効にします。 |
メソッドの概要 | |
---|---|
Object |
getOption(int optID)
オプションの値を取得します。 |
void |
setOption(int optID,
Object value)
optID で指定されたオプションを有効または無効にします。 |
フィールドの詳細 |
---|
static final int TCP_NODELAY
TCP だけに有効: SocketImpl
Socket.setTcpNoDelay(boolean)
,
Socket.getTcpNoDelay()
,
定数フィールド値static final int SO_BINDADDR
このオプションは、コンストラクタの中で指定されなければなりません。
有効: SocketImpl、DatagramSocketImpl
Socket.getLocalAddress()
,
DatagramSocket.getLocalAddress()
,
定数フィールド値static final int SO_REUSEADDR
有効: DatagramSocketImpl
static final int SO_BROADCAST
static final int IP_MULTICAST_IF
マルチキャストに有効: DatagramSocketImpl
MulticastSocket.setInterface(InetAddress)
,
MulticastSocket.getInterface()
,
定数フィールド値static final int IP_MULTICAST_IF2
MulticastSocket.setNetworkInterface(NetworkInterface)
,
MulticastSocket.getNetworkInterface()
,
定数フィールド値static final int IP_MULTICAST_LOOP
static final int IP_TOS
static final int SO_LINGER
TCP にだけ有効: SocketImpl
Socket.setSoLinger(boolean, int)
,
Socket.getSoLinger()
,
定数フィールド値static final int SO_TIMEOUT
ServerSocket.accept(); SocketInputStream.read(); DatagramSocket.receive();
オプションの設定は、ブロック操作が有効になる前に行わなければなりません。タイムアウトが過ぎても操作のブロックが続いている場合は、java.io.InterruptedIOException がスローされます。この場合、ソケットは閉じられません。
すべてのソケットで有効: SocketImpl、DatagramSocketImpl
Socket.setSoTimeout(int)
,
ServerSocket.setSoTimeout(int)
,
DatagramSocket.setSoTimeout(int)
,
定数フィールド値static final int SO_SNDBUF
Socket.setSendBufferSize(int)
,
Socket.getSendBufferSize()
,
DatagramSocket.setSendBufferSize(int)
,
DatagramSocket.getSendBufferSize()
,
定数フィールド値static final int SO_RCVBUF
Socket.setReceiveBufferSize(int)
,
Socket.getReceiveBufferSize()
,
DatagramSocket.setReceiveBufferSize(int)
,
DatagramSocket.getReceiveBufferSize()
,
定数フィールド値static final int SO_KEEPALIVE
Socket.setKeepAlive(boolean)
,
Socket.getKeepAlive()
,
定数フィールド値static final int SO_OOBINLINE
Socket.setOOBInline(boolean)
,
Socket.getOOBInline()
,
定数フィールド値メソッドの詳細 |
---|
void setOption(int optID, Object value) throws SocketException
SocketImpl s; ... s.setOption(SO_LINGER, new Integer(10)); // OK - set SO_LINGER w/ timeout of 10 sec. s.setOption(SO_LINGER, new Double(10)); // ERROR - expects java.lang.Integer要求されるオプションがバイナリ値の場合は、java.lang.Boolean による次のメソッドを使って設定できます。
s.setOption(TCP_NODELAY, new Boolean(true)); // OK - enables TCP_NODELAY, a binary option
s.setOption(TCP_NODELAY, new Boolean(false)); // OK - disables TCP_NODELAY s.setOption(SO_LINGER, new Boolean(false)); // OK - disables SO_LINGER
optID
- オプションの ID (識別子)value
- ソケットのオプションのパラメータ
SocketException
- オプションが認識されない場合、ソケットが閉じられている場合、あるいは何らかの低レベルエラーが発生した場合getOption(int)
Object getOption(int optID) throws SocketException
SocketImpl s; ... Boolean noDelay = (Boolean)(s.getOption(TCP_NODELAY)); if (noDelay.booleanValue()) { // true if TCP_NODELAY is enabled... ... }
特定の型をパラメータとしてとるオプションについては、getOption(int) はパラメータの値を返します。そうでない場合は、java.lang.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
- ソケットが閉じられている場合
SocketException
- optID が、プロトコルスタック (SocketImpl を含む) で未知である場合setOption(int, java.lang.Object)
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。