|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object java.nio.channels.spi.AbstractInterruptibleChannel java.nio.channels.SelectableChannel java.nio.channels.spi.AbstractSelectableChannel java.nio.channels.ServerSocketChannel
public abstract class ServerSocketChannel
ストリーム型リスニングソケット用の選択可能なチャネルです。
サーバーソケットチャネルは、ネットワークソケットの完全な抽象化ではありません。ソケットオプションのバインドと操作は、socket
メソッド呼び出しによって取得した関連 ServerSocket
オブジェクトを介して行う必要があります。任意の既存サーバーソケットのチャネルを作成したり、サーバーソケットチャネルに関連したサーバーソケットで SocketImpl
オブジェクトを使用するように指定することはできません。
サーバーソケットチャネルは、このクラスの open
メソッドを呼び出すと作成されます。新しく作成されたサーバーソケットチャネルはオープンですが、未バインドです。未バインドのサーバーソケットチャネルの accept
メソッドを呼び出そうとすると、NotYetBoundException
がスローされます。サーバーソケットチャネルは、関連サーバーソケットの bind
メソッドを呼び出すとバインドされます。
サーバソケットチャネルは、複数の並行スレッドで安全に使用できます。
コンストラクタの概要 | |
---|---|
protected |
ServerSocketChannel(SelectorProvider provider)
このクラスの新しいインスタンスを初期化します。 |
メソッドの概要 | |
---|---|
abstract SocketChannel |
accept()
このチャネルのソケットに対する接続を受け付けます。 |
static ServerSocketChannel |
open()
サーバソケットチャネルをオープンします。 |
abstract ServerSocket |
socket()
このチャネルに関連したサーバソケットを取得します。 |
int |
validOps()
このチャネルのサポートされている操作を識別する操作セットを返します。 |
クラス java.nio.channels.spi.AbstractSelectableChannel から継承されたメソッド |
---|
blockingLock, configureBlocking, implCloseChannel, implCloseSelectableChannel, implConfigureBlocking, isBlocking, isRegistered, keyFor, provider, register |
クラス java.nio.channels.SelectableChannel から継承されたメソッド |
---|
register |
クラス java.nio.channels.spi.AbstractInterruptibleChannel から継承されたメソッド |
---|
begin, close, end, isOpen |
クラス java.lang.Object から継承されたメソッド |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
インタフェース java.nio.channels.Channel から継承されたメソッド |
---|
close, isOpen |
コンストラクタの詳細 |
---|
protected ServerSocketChannel(SelectorProvider provider)
メソッドの詳細 |
---|
public static ServerSocketChannel open() throws IOException
新しいチャネルを作成するには、システム全体のデフォルトである SelectorProvider
オブジェクトの openServerSocketChannel
メソッドを呼び出します。
新しいチャネルのソケットは、初期状態では未バインドです。ソケットの bind
メソッドを使って特定のアドレスにバインドしないと、接続は受け付けられません。
IOException
- 入出力エラーが発生した場合public final int validOps()
サーバーソケットチャネルは、新しい接続の受け付けだけをサポートします。したがって、このメソッドは SelectionKey.OP_ACCEPT
を返します。
SelectableChannel
内の validOps
public abstract ServerSocket socket()
返されるオブジェクトは、ServerSocket
クラスで宣言されていない public メソッドは宣言しません。
public abstract SocketChannel accept() throws IOException
このチャネルが非ブロックモードの場合、保留されている接続がなければ、このメソッドはただちに null を返します。それ以外の場合、新しい接続が利用可能になるか、入出力エラーが発生するまで無期限にブロックされます。
このメソッドによって返されるソケットチャネルは、このチャネルがブロックモードであってもそうでなくてもブロックモードになります。
このメソッドは、ServerSocket
クラスの accept
メソッドとまったく同じセキュリティーチェックを実行します。セキュリティーマネージャーがインストールされている場合、このメソッドは、新しい接続 1 つ 1 つのリモートエンドポイントのアドレスとポート番号がセキュリティーマネージャーの checkAccept
メソッドによって許可されていることを確認します。
ClosedChannelException
- このチャネルがクローズしている場合
AsynchronousCloseException
- 受け付け操作の進行中に、別のスレッドによってこのチャネルがクローズされた場合
ClosedByInterruptException
- 受け付け操作の進行中に、現在のスレッドに対して別のスレッドから割り込みがあったためにチャネルがクローズし、現在のスレッドの割り込み状態が設定された場合
NotYetBoundException
- このチャネルのソケットが未バインドの場合
SecurityException
- セキュリティーマネージャーがインストールされていて、新しい接続のリモートエンドポイントへのアクセスが許可されていない場合
IOException
- その他の入出力エラーが発生した場合
|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。