モジュール java.base
パッケージ java.nio.channels

クラスAsynchronousServerSocketChannel

java.lang.Object
java.nio.channels.AsynchronousServerSocketChannel
すべての実装されたインタフェース:
Closeable, AutoCloseable, AsynchronousChannel, Channel, NetworkChannel

public abstract class AsynchronousServerSocketChannel extends Object implements AsynchronousChannel, 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