クラスSctpServerChannel

すべての実装されたインタフェース:
Closeable, AutoCloseable, Channel, InterruptibleChannel

public abstract class SctpServerChannel extends AbstractSelectableChannel
メッセージ指向の待機SCTPソケットの選択可能なチャネルです。

このクラスのopenメソッドを呼び出すと、SCTPServerChannelが作成されます。 新しく作成されたSCTPサーバー・チャネルはオープンですが、未バインドです。 バインドされていないチャネルのacceptメソッドを呼び出そうとすると、NotYetBoundExceptionがスローされます。 SCTPサーバー・チャネルは、このクラスによって定義されるbindメソッドの1つを呼び出すことによってバインドできます。

ソケット・オプションはsetOptionメソッドを使用して構成されます。 SCTPサーバー・ソケット・チャネルでは次のオプションがサポートされます。

ソケット・オプション
オプション名 説明
SCTP_INIT_MAXSTREAMS アソシエーションの初期化中にローカル・エンドポイントで要求されたストリームの最大数
追加(実装固有)のオプションをサポートできる場合もあります。 supportedOptionsメソッドを呼び出すと、サポートされているオプションのリストが取得されます。

SCTPサーバー・チャネルは、複数の並行スレッドで安全に使用できます。

導入されたバージョン:
1.7
  • コンストラクタのサマリー

    コンストラクタ
    修飾子
    コンストラクタ
    説明
    protected
    このクラスの新しいインスタンスを初期化します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    abstract SctpChannel
    このチャネルのソケット上のアソシエーションを受け入れます。
    チャネルのソケットをローカル・アドレスにバインドし、アソシエーションを待機するようソケットを構成します。
    bind(SocketAddress local, int backlog)
    チャネルのソケットをローカル・アドレスにバインドし、アソシエーションを待機するようソケットを構成します。
    指定されたアドレスをチャネルのソケットにバインドされているアドレスに追加します。
    abstract Set<SocketAddress>
    このチャネルのソケットがバインドされているすべてのソケット・アドレスを返します。
    abstract <T> T
    ソケット・オプションの値を返します。
    SCTPサーバー・チャネルを開きます。
    abstract <T> SctpServerChannel
    setOption(SctpSocketOption<T> name, T value)
    ソケット・オプションの値を設定します。
    abstract Set<SctpSocketOption<?>>
    このチャネルがサポートするソケット・オプションのセットを返します。
    指定されたアドレスをチャネルのソケットにバインドされているアドレスから削除します。
    final int
    このチャネルのサポートされている操作を識別する操作セットを返します。

    クラスで宣言されたメソッド AbstractSelectableChannel

    blockingLock, configureBlocking, implCloseChannel, implCloseSelectableChannel, implConfigureBlocking, isBlocking, isRegistered, keyFor, provider, register
    修飾子と型
    メソッド
    説明
    final Object
    configureBlockingおよびregisterメソッドが同期するオブジェクトを取得します。
    configureBlocking(boolean block)
    このチャネルのブロック・モードを調整します。
    protected final void
    現在のチャネルをクローズします。
    protected abstract void
    この選択可能チャネルをクローズします。
    protected abstract void
    implConfigureBlocking(boolean block)
    このチャネルのブロック・モードを調整します。
    final boolean
    このチャネル上の個々の入出力操作が前の入出力操作が完了するまでブロックされるかどうかを判断します。
    final boolean
    現在このチャネルがセレクタに登録されているかどうかを判断します。
    チャネルが指定されたセレクタに登録されていることを示すキーを取得します。
    このチャネルの作成元プロバイダを返します。
    register(Selector sel, int ops, Object att)
    このチャネルを指定されたセレクタに登録し、選択キーを返します。

    クラスで宣言されたメソッド SelectableChannel

    register
    修飾子と型
    メソッド
    説明
    register(Selector sel, int ops)
    このチャネルを指定されたセレクタに登録し、選択キーを返します。

    クラスで宣言されたメソッド AbstractInterruptibleChannel

    begin, close, end, isOpen
    修飾子と型
    メソッド
    説明
    protected final void
    無期限にブロックされる入出力操作の開始をマークします。
    final void
    現在のチャネルをクローズします。
    protected final void
    end(boolean completed)
    無期限にブロックされる入出力操作の終了をマークします。
    final boolean
    現在のチャネルの状態がオープンであるかどうかを判断します。

    クラスオブジェクトで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    修飾子と型
    メソッド
    説明
    protected Object
    このオブジェクトのコピーを作成して、返します。
    boolean
    このオブジェクトと他のオブジェクトが等しいかどうかを示します。
    protected void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    最終決定は非推奨であり、将来のリリースで削除される可能性があります。
    final Class<?>
    このObjectの実行時クラスを返します。
    int
    このオブジェクトに対するハッシュ・コード値を返します。
    final void
    このオブジェクトのモニターで待機中のスレッドを1つ再開します。
    final void
    このオブジェクトのモニターで待機中のすべてのスレッドを再開します。
    オブジェクトの文字列表現を返します。
    final void
    現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。
    final void
    wait(long timeoutMillis)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
    final void
    wait(long timeoutMillis, int nanos)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
  • コンストラクタの詳細

    • SctpServerChannel

      protected SctpServerChannel(SelectorProvider provider)
      このクラスの新しいインスタンスを初期化します。
      パラメータ:
      provider - このチャネルのセレクタ・プロバイダ
  • メソッドの詳細

    • open

      public static SctpServerChannel open() throws IOException
      SCTPサーバー・チャネルを開きます。

      新しいチャネルのソケットは、初期状態では未バインドです。ソケットのbindメソッドの1つを使って特定のアドレスにバインドしないと、アソシエーションは受け付けられません。

      戻り値:
      新しいSCTPサーバー・チャネル
      スロー:
      UnsupportedOperationException - SCTPプロトコルがサポートされていない場合
      IOException - 入出力エラーが発生した場合
    • accept

      public abstract SctpChannel accept() throws IOException
      このチャネルのソケット上のアソシエーションを受け入れます。

      このチャネルが非ブロック・モードの場合、保留されているアソシエーションがなければ、このメソッドはただちにnullを返します。 それ以外の場合、新しいアソシエーションが利用可能になるか、入出力エラーが発生するまで無期限にブロックされます。

      このメソッドによって返されるSCTPChannelは、このチャネルがブロック・モードであってもそうでなくてもブロック・モードになります。

      戻り値:
      新しいアソシエーションのSCTPチャネル。このチャネルが非ブロック・モードで、受け付け可能なアソシエーションが存在しない場合はnull
      スロー:
      ClosedChannelException - このチャネルがクローズしている場合
      AsynchronousCloseException - 受け付け操作の進行中に、別のスレッドによってこのチャネルがクローズされた場合
      ClosedByInterruptException - 受入れ操作の進行中に別のスレッドが現在のスレッドを中断した場合、チャネルをクローズし、現在のスレッドの中断ステータスを設定します
      NotYetBoundException - このチャネルのソケットが未バインドの場合
      IOException - その他の入出力エラーが発生した場合
    • bind

      public final SctpServerChannel bind(SocketAddress local) throws IOException
      チャネルのソケットをローカル・アドレスにバインドし、アソシエーションを待機するようソケットを構成します。

      このメソッドの呼出しは、式を評価することと同様に動作します。

      bind(local, 0);
      

      パラメータ:
      local - ソケットのバインド先のローカル・アドレス、または自動的に割り当てられるソケット・アドレスにソケットをバインドする場合はnull
      戻り値:
      このチャネル
      スロー:
      ClosedChannelException - このチャネルがクローズしている場合
      AlreadyBoundException - このチャネルがすでにバインドされている場合
      UnsupportedAddressTypeException - 指定されたアドレスのタイプがサポート対象外の場合
      IOException - その他の入出力エラーが発生した場合
    • bind

      public abstract SctpServerChannel bind(SocketAddress local, int backlog) throws IOException
      チャネルのソケットをローカル・アドレスにバインドし、アソシエーションを待機するようソケットを構成します。

      このメソッドは、ソケットとローカル・アドレスとの間の関係を確立するために使用されます。 関係が確立されると、ソケットはチャネルが閉じられるまでバインドされたままになります。 この関係はunbindAddressによって削除される可能性があるため、必ずしもアドレスlocalとの関係であるとはかぎりませんが、このメソッドの呼出しが正常に完了すれば、チャネルのソケットにバインドされたローカル・アドレスが必ず1つ以上存在します。

      チャネルのソケットが(自動的に割り当てられない)特定のアドレスに正常にバインドされると、追加のアドレスをbindAddressを使用してバインドしたり、unbindAddressを使用して削除したりできます。

      backlogパラメータは、ソケットの保留されているアソシエーションの最大数です。 正確なセマンティックスは実装に固有です。 実装によっては、特定の最大長が規定されていたり、パラメータが無視されたりする場合もあります。 backlogパラメータの値が0または負の値の場合は、実装固有のデフォルトが使用されます。

      パラメータ:
      local - ソケットのバインド先のローカル・アドレス、または自動的に割り当てられるソケット・アドレスにソケットをバインドする場合はnull
      backlog - 保留中の関連付けの最大数
      戻り値:
      このチャネル
      スロー:
      ClosedChannelException - このチャネルがクローズしている場合
      AlreadyBoundException - このチャネルがすでにバインドされている場合
      UnsupportedAddressTypeException - 指定されたアドレスのタイプがサポート対象外の場合
      IOException - その他の入出力エラーが発生した場合
    • bindAddress

      public abstract SctpServerChannel bindAddress(InetAddress address) throws IOException
      指定されたアドレスをチャネルのソケットにバインドされているアドレスに追加します。

      指定されたアドレスは、ワイルドカード・アドレスであってはいけません。 このメソッドを呼び出す前に、まずbindを使用してチャネルをバインドする必要があります。そうしないと、NotYetBoundExceptionがスローされます。 bindメソッドは、引数としてSocketAddressを取ります。通常は、アドレスに加えてポート番号も含まれます。 チャネルの存続期間内はSCTPポート番号は同じままであるため、その後、このメソッドを使用してバインドされたアドレスにはアドレスのみが含まれます。

      このメソッドが正常に完了したあとに受け付けられる新しいアソシエーションでは、指定されたアドレスと関連付けされます。

      パラメータ:
      address - ソケットにバインドされたアドレスに追加されるアドレス
      戻り値:
      このチャネル
      スロー:
      ClosedChannelException - このチャネルがクローズしている場合
      NotYetBoundException - このチャネルがまだバインドされていない場合
      AlreadyBoundException - このチャネルがすでに指定されたアドレスにバインドされている場合
      IllegalArgumentException - アドレスがnullまたはwildcardアドレスの場合
      IOException - その他の入出力エラーが発生した場合
    • unbindAddress

      public abstract SctpServerChannel unbindAddress(InetAddress address) throws IOException
      指定されたアドレスをチャネルのソケットにバインドされているアドレスから削除します。

      指定されたアドレスは、ワイルドカード・アドレスであってはいけません。 このメソッドを呼び出す前に、まずbindを使用してチャネルをバインドする必要があります。そうしないと、NotYetBoundExceptionがスローされます。 バインドされたアドレスの1つとしてaddressが含まれないチャネルまたはバインドされているローカル・アドレスが1つしかないチャネルでこのメソッドが呼び出された場合はIllegalUnbindExceptionがスローされます。 bindを使用してチャネルのソケットがバインドされる初期アドレスは、チャネルのソケットにバインドされたアドレスから削除される可能性があります。

      このメソッドが正常に完了したあとに受け付けられる新しいアソシエーションでは、指定されたアドレスと関連付けされません。

      パラメータ:
      address - ソケットにバインドされたアドレスから削除されるアドレス
      戻り値:
      このチャネル
      スロー:
      ClosedChannelException - このチャネルがクローズしている場合
      NotYetBoundException - このチャネルがまだバインドされていない場合
      IllegalArgumentException - アドレスがnullまたはwildcardアドレスの場合
      IllegalUnbindException - 実装でリスニング・ソケットからのアドレスの削除をサポートしない場合、addressはチャネルのソケットにバインドされません。それ以外の場合、チャネルにはバインドされたアドレスが1つのみあります
      IOException - その他の入出力エラーが発生した場合
    • getAllLocalAddresses

      public abstract Set<SocketAddress> getAllLocalAddresses() throws IOException
      このチャネルのソケットがバインドされているすべてのソケット・アドレスを返します。
      戻り値:
      このチャネルのソケットがバインドされているすべてのソケット・アドレス、チャネルのソケットがバインドされていない場合は空のSet
      スロー:
      ClosedChannelException - チャネルがクローズしている場合
      IOException - 入出力エラーが発生した場合
    • getOption

      public abstract <T> T getOption(SctpSocketOption<T> name) throws IOException
      ソケット・オプションの値を返します。
      型パラメータ:
      T - ソケット・オプション値のタイプ
      パラメータ:
      name - ソケット・オプション
      戻り値:
      ソケット・オプションの値。 一部のソケット・オプションに対しては、nullの値が有効な値である場合があります。
      スロー:
      UnsupportedOperationException - チャネルがソケット・オプションをサポートしていない場合
      ClosedChannelException - このチャネルがクローズしている場合
      IOException - 入出力エラーが発生した場合
      関連項目:
    • setOption

      public abstract <T> SctpServerChannel setOption(SctpSocketOption<T> name, T value) throws IOException
      ソケット・オプションの値を設定します。
      型パラメータ:
      T - ソケット・オプション値のタイプ
      パラメータ:
      name - ソケット・オプション
      value - ソケット・オプションの値。 一部のソケット・オプションに対しては、nullの値が有効な値である場合があります。
      戻り値:
      このチャネル
      スロー:
      UnsupportedOperationException - チャネルがソケット・オプションをサポートしていない場合
      IllegalArgumentException - 値がこのソケット・オプションに対して有効な値でない場合
      ClosedChannelException - このチャネルがクローズしている場合
      IOException - 入出力エラーが発生した場合
      関連項目:
    • supportedOptions

      public abstract Set<SctpSocketOption<?>> supportedOptions()
      このチャネルがサポートするソケット・オプションのセットを返します。

      このメソッドは、チャネルが閉じられたあとでも引き続きオプションのセットを返します。

      戻り値:
      このチャネルでサポートされるソケット・オプションのセット
    • validOps

      public final int validOps()
      このチャネルのサポートされている操作を識別する操作セットを返します。

      SCTPサーバー・チャネルは新しいアソシエーションの受け入れのみをサポートしているため、このメソッドはSelectionKey.OP_ACCEPTを返します。

      定義:
      validOps、クラスSelectableChannel
      戻り値:
      有効な操作セット