- すべての実装されたインタフェース:
- Closeable,- AutoCloseable,- AsynchronousChannel,- Channel,- NetworkChannel
 このクラスのopenメソッドを呼び出すと、非同期のサーバー・ソケット・チャネルが作成されます。 新しく作成された非同期のサーバー・ソケット・チャネルはオープンですが、未バインドです。 これは、ローカル・アドレスにバインドでき、bindメソッドを呼び出すことで接続を待機するよう構成できます。 バインド後に、acceptメソッドを使用して、チャネルのソケットへの接続の受け付けが開始されます。 バインドされていないチャネルのacceptメソッドを呼び出そうとすると、NotYetBoundExceptionがスローされます。 
 
 このタイプのチャネルは複数の並行スレッドで安全に使用できますが、最大で1つの受け付け操作が常に未処理になる可能性があります。 前の受け付け操作が終了する前にスレッドが受け付け操作を開始すると、AcceptPendingExceptionがスローされます。 
 
 ソケット・オプションはsetOptionメソッドを使用して構成されます。 このタイプのチャネルでは次のオプションがサポートされます。 
 
追加(実装固有)のオプションをサポートできる場合もあります。
オプション名 説明 SO_RCVBUFソケット受信バッファのサイズ SO_REUSEADDRアドレスを再利用します 
使用例:
  final AsynchronousServerSocketChannel listener =
      AsynchronousServerSocketChannel.open().bind(new InetSocketAddress(5000));
  listener.accept(null, new CompletionHandler<AsynchronousSocketChannel,Void>() {
      public void completed(AsynchronousSocketChannel ch, Void att) {
          // accept the next connection
          listener.accept(null, this);
          // handle this connection
          handle(ch);
      }
      public void failed(Throwable exc, Void att) {
          ...
      }
  });
 - 導入されたバージョン:
- 1.7
- 
コンストラクタのサマリーコンストラクタ修飾子コンストラクタ説明protectedこのクラスの新しいインスタンスを初期化します。
- 
メソッドのサマリー修飾子と型メソッド説明abstract Future<AsynchronousSocketChannel>accept()接続を受け入れます。abstract <A> voidaccept(A attachment, CompletionHandler<AsynchronousSocketChannel, ? super A> handler) 接続を受け入れます。bind(SocketAddress local) チャネルのソケットをローカル・アドレスにバインドし、接続を待機するようソケットを構成します。abstract AsynchronousServerSocketChannelbind(SocketAddress local, int backlog) チャネルのソケットをローカル・アドレスにバインドし、接続を待機するようソケットを構成します。abstract SocketAddressこのチャネルのソケットがバインドされているソケット・アドレスを返します。open()非同期のサーバー・ソケット・チャネルを開きます。open(AsynchronousChannelGroup group) 非同期のサーバー・ソケット・チャネルを開きます。provider()このチャネルの作成元プロバイダを返します。abstract <T> AsynchronousServerSocketChannelsetOption(SocketOption<T> name, T value) ソケット・オプションの値を設定します。クラス java.lang.Objectで宣言されたメソッドclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitインタフェース java.nio.channels.AsynchronousChannelで宣言されたメソッドcloseインタフェース java.nio.channels.NetworkChannelで宣言されたメソッドgetOption, supportedOptions
- 
コンストラクタの詳細- 
AsynchronousServerSocketChannelprotected AsynchronousServerSocketChannel(AsynchronousChannelProvider provider) このクラスの新しいインスタンスを初期化します。- パラメータ:
- provider- このチャネルの作成元プロバイダ
 
 
- 
- 
メソッドの詳細- 
providerpublic final AsynchronousChannelProvider provider()このチャネルの作成元プロバイダを返します。- 戻り値:
- このチャネルの作成元プロバイダ
 
- 
openpublic static AsynchronousServerSocketChannel open(AsynchronousChannelGroup group) throws IOException 非同期のサーバー・ソケット・チャネルを開きます。指定したグループを作成した AsynchronousChannelProviderオブジェクトでopenAsynchronousServerSocketChannelメソッドを呼び出すことで、新しいチャネルが作成されます。 groupパラメータがnullの場合、結果のチャネルは、システム全体のデフォルト・プロバイダによって作成され、デフォルト・グループにバインドされます。- パラメータ:
- group- 新たに構築されたチャネルのバインド先のグループ、またはデフォルト・グループの場合は- null
- 戻り値:
- 新しい非同期サーバー・ソケット・チャネル
- 例外:
- ShutdownChannelGroupException- チャネル・グループがシャットダウンしている場合
- IOException- 入出力エラーが発生した場合
 
- 
openpublic static AsynchronousServerSocketChannel open() throws IOException非同期のサーバー・ソケット・チャネルを開きます。このメソッドは、デフォルト・グループにバインドされた非同期のサーバー・ソケット・チャネルを返します。 このメソッドの呼出しは次の式の評価と等価です。 open((AsynchronousChannelGroup)null); - 戻り値:
- 新しい非同期サーバー・ソケット・チャネル
- 例外:
- IOException- 入出力エラーが発生した場合
 
- 
bindpublic final AsynchronousServerSocketChannel bind(SocketAddress local) throws IOException チャネルのソケットをローカル・アドレスにバインドし、接続を待機するようソケットを構成します。このメソッドの呼出しは次と同等です。 bind(local, 0); - 定義:
- bind、インタフェース:- NetworkChannel
- パラメータ:
- local- ソケットのバインド先のローカル・アドレス、または自動的に割り当てられるソケット・アドレスにバインドする場合は- null
- 戻り値:
- このチャネル
- 例外:
- AlreadyBoundException- ソケットがすでにバインドされている場合
- UnsupportedAddressTypeException- 指定されたアドレスのタイプがサポート対象外の場合
- SecurityException- セキュリティ・マネージャがインストールされ、それが未指定のアクセス権を拒否する場合。 このインタフェースの実装は、必要なアクセス権を指定するべきです。
- ClosedChannelException- チャネルがクローズしている場合
- IOException- その他の入出力エラーが発生した場合
- 関連項目:
 
- 
bindpublic abstract AsynchronousServerSocketChannel bind(SocketAddress local, int backlog) throws IOException チャネルのソケットをローカル・アドレスにバインドし、接続を待機するようソケットを構成します。このメソッドは、ソケットとローカル・アドレスとの間の関連付けを確立するために使用されます。 関連付けが確立されると、ソケットは関連するチャネルが閉じられるまでバインドされたままになります。 backlogパラメータは、ソケットの保留されている接続の最大数です。 正確なセマンティックスは実装に固有です。 たとえば、実装が最大長を規定していたり、パラメータをまったく無視したりする場合があります。backlogパラメータの値が0または負の値の場合、実装固有のデフォルトが使用されます。- パラメータ:
- local- ソケットのバインド先のローカル・アドレス、または自動的に割り当てられるソケット・アドレスにバインドする場合は- null
- backlog- 保留されている接続の最大数。
- 戻り値:
- このチャネル
- 例外:
- AlreadyBoundException- ソケットがすでにバインドされている場合
- UnsupportedAddressTypeException- 指定されたアドレスのタイプがサポート対象外の場合
- SecurityException- セキュリティ・マネージャがインストールされていて、- checkListenメソッドが操作を拒否した場合
- ClosedChannelException- チャネルがクローズしている場合
- IOException- その他の入出力エラーが発生した場合
 
- 
setOptionpublic abstract <T> AsynchronousServerSocketChannel setOption(SocketOption<T> name, T value) throws IOException インタフェースからコピーされた説明:NetworkChannelソケット・オプションの値を設定します。- 定義:
- setOption、インタフェース:- NetworkChannel
- 型パラメータ:
- T- ソケット・オプション値のタイプ
- パラメータ:
- name- ソケット・オプション
- value- ソケット・オプションの値。 一部のソケット・オプションに対しては、- nullの値が有効な値である場合があります。
- 戻り値:
- このチャネル
- 例外:
- IllegalArgumentException- 値がこのソケット・オプションに対して有効な値でない場合
- ClosedChannelException- このチャネルがクローズしている場合
- IOException- 入出力エラーが発生した場合
- 関連項目:
 
- 
acceptpublic abstract <A> void accept(A attachment, CompletionHandler<AsynchronousSocketChannel, ? super A> handler) 接続を受け入れます。このメソッドは、このチャネルのソケットに対する接続を受け付けるための非同期操作を開始します。 handlerパラメータは、接続が受け付けられた(または操作が失敗した)ときに呼び出される終了ハンドラです。 終了ハンドラに渡される結果は、新しい接続へのAsynchronousSocketChannelです。新しい接続が受け付けられると、結果の AsynchronousSocketChannelは、このチャネルと同じAsynchronousChannelGroupにバインドされます。 グループがシャットダウンしている場合に接続が受け付けられると、接続は閉じられ、操作はIOExceptionで終了して、ShutdownChannelGroupExceptionがスローされます。新しい接続の並行処理を可能にするために、新しい接続がすぐに受け付けられたときに、終了ハンドラは開始スレッドによって直接呼び出されません(「スレッド」を参照)。 セキュリティ・マネージャがインストールされている場合、接続のリモート・エンドポイントのアドレスとポート番号がセキュリティ・マネージャの checkAcceptメソッドによって許可されていることが検証されます。 アクセス権のチェックは、このメソッドの呼出し側コンテキストによって制限される権限を使用して実行されます。 アクセス権のチェックが失敗した場合、接続は閉じられ、操作はSecurityExceptionで終了します。- 型パラメータ:
- A- 接続のタイプ
- パラメータ:
- attachment- 入出力操作に接続されるオブジェクト。- nullも可
- handler- 結果を消費するためのハンドラ
- 例外:
- AcceptPendingException- このチャネルで受け付け操作がすでに進行中である場合
- NotYetBoundException- このチャネルのソケットが未バインドの場合
- ShutdownChannelGroupException- チャネル・グループが終了している場合
 
- 
acceptpublic abstract Future<AsynchronousSocketChannel> accept()接続を受け入れます。このメソッドは、このチャネルのソケットに対する接続を受け付けるための非同期操作を開始します。 このメソッドは、 accept(Object, CompletionHandler)メソッドとまったく同じように動作します。ただし、終了ハンドラを指定するかわりに、このメソッドは保留状態の結果を表すFutureを返します。Futureのgetメソッドは、正常に完了すると新しい接続へのAsynchronousSocketChannelを返します。- 戻り値:
- 保留されている結果を表すFutureオブジェクト
- 例外:
- AcceptPendingException- このチャネルで受け付け操作がすでに進行中である場合
- NotYetBoundException- このチャネルのソケットが未バインドの場合
 
- 
getLocalAddresspublic abstract SocketAddress getLocalAddress() throws IOExceptionこのチャネルのソケットがバインドされているソケット・アドレスを返します。チャネルがInternet Protocolソケット・アドレスに バインドされている場合は、このメソッドからの戻り値の型はInetSocketAddressです。セキュリティ・マネージャが設定されている場合は、セキュリティ・マネージャの checkConnectメソッドがローカル・アドレスおよび-1を引数として呼び出され、操作が許可されるかどうかが確認されます。 この操作が許可されない場合は、ループバック・アドレスおよびチャネルのソケットのローカル・ポートを表すSocketAddressが返されます。- 定義:
- getLocalAddress、インタフェース:- NetworkChannel
- 戻り値:
- ソケットがバインドされているSocketAddress、またはセキュリティ・マネージャによって拒否された場合はループバック・アドレスを表すSocketAddress、またはチャネルのソケットがバインドされていない場合はnull
- 例外:
- ClosedChannelException- チャネルがクローズしている場合
- IOException- 入出力エラーが発生した場合
 
 
-