|
CDC 1.1.2 | |||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
public interface SocketOptions
ソケットオプションを取得/設定するメソッドのインタフェース。このインタフェースは SocketImpl と DatagramSocketImpl によって実装されています。注:java.net.SocketImpl は、J2ME Foundation Profile などの J2ME CDC プロファイルにあります。これらのサブクラスで独自のオプションをサポートするには、このインタフェースのメソッドをオーバーライドしてください。
このインタフェース内の、オプションを指定するためのメソッドと定数は、実装専用です。SocketImpl または DatagramSocketImpl のサブクラスを作成しない場合には、これらを直接使用しないでください。Socket、ServerSocket、DatagramSocket、および MulticastSocket には、これらの各オプションを取得/設定するための型保証されたメソッドが存在しています。注:java.net.SocketImpl、java.net.Socket、java.net.ServerSocket、java.net.MulticastSocket は、J2ME Foundation Profile などの J2ME CDC プロファイルにあります。
| フィールドの概要 | |
|---|---|
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 ソケットでキープアライブオプションが設定されていて、2 時間 (注: 実際の値は実装に依存する) の間、そのソケット経由でどちらの向きにもデータが交換されなかった場合、TCP は自動的に、キープアライブプローブをピアに送信します。 |
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。注:java.net.SocketImpl は、J2ME Foundation Profile などの J2ME CDC プロファイルにあります。
Socket#setTcpNoDelay,
Socket#getTcpNoDelay,
定数フィールド値static final int SO_BINDADDR
このオプションは、コンストラクタの中で指定されなければいけません。
有効: SocketImpl、DatagramSocketImpl
注:java.net.Socket、java.net.ServerSocket、java.net.SocketImpl は、J2ME Foundation Profile などの J2ME CDC プロファイルにあります。
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),
MulitcastSocket#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。注: java.net.SocketImpl は、J2ME Foundation Profile などの J2ME CDC プロファイルにあります。
Socket#setSoLinger,
Socket#getSoLinger,
定数フィールド値static final int SO_TIMEOUT
ServerSocket.accept(); SocketInputStream.read(); DatagramSocket.receive();注:java.net.ServerSocket は、J2ME Foundation Profile などの J2ME CDC プロファイルにあります。
このオプションは、ブロック処理に入る前に設定してください。そうしないと効果がありません。タイムアウトの期限が切れても操作のブロックが継続している場合、java.io.InterruptedIOException が発行されます。この場合、ソケットはクローズされません。
すべてのソケットで有効: SocketImpl、DatagramSocketImpl。注: java.net.SocketImpl は、J2ME Foundation Profile などの J2ME CDC プロファイルにあります。
Socket#setSoTimeout,
ServerSocket#setSoTimeout,
DatagramSocket.setSoTimeout(int),
定数フィールド値static final int SO_SNDBUF
Socket#setSendBufferSize,
Socket#getSendBufferSize,
DatagramSocket.setSendBufferSize(int),
DatagramSocket.getSendBufferSize(),
定数フィールド値static final int SO_RCVBUF
Socket#setReceiveBufferSize,
Socket#getReceiveBufferSize,
DatagramSocket.setReceiveBufferSize(int),
DatagramSocket.getReceiveBufferSize(),
定数フィールド値static final int SO_KEEPALIVE
Socket#setKeepAlive,
Socket#getKeepAlive,
定数フィールド値static final int SO_OOBINLINE
Socket#setOOBInline,
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);
}
注:java.net.SocketImpl は、J2ME Foundation Profile などの J2ME CDC プロファイルにあります。
optID - 取得するオプションを指定した int 値
SocketException - ソケットが閉じられている場合
SocketException - optID がプロトコルスタック (SocketImpl を含む) に基づいて未知である場合setOption(int, java.lang.Object)
|
CDC 1.1.2 | |||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||