クラスSctpMultiChannel

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

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

SCTPマルチチャネルは、単一ソケットにおける多数のアソシエーションをサポートします。 このクラスのopenメソッドを呼び出すと、SctpMultiChannelが作成されます。 新しく作成されたチャネルはオープンですが、未バインドです。 バインドされていないチャネルのreceiveメソッドを呼び出そうとすると、NotYetBoundExceptionがスローされます。 バインドされていないチャネルのsendメソッドを呼び出そうとすると、最初にbindメソッドが呼び出されます。 チャネルのソケットがバインドされているアドレスは、getAllLocalAddressesを呼び出して取得できます。

メッセージは、リモート・ピアとのアソシエーションを明示的に設定しなくても、送受信できます。 チャネルは、リモート・ピアに対してメッセージを送受信するときは常に、そのピアとのアソシエーションが存在しない場合は新しいアソシエーションを暗黙的に設定します。 正常にアソシエーションが設定されると、eventパラメータがCOMM_UPに設定されたSCTPスタックにassociation changed通知が配置されます。 receiveを呼び出すと、この通知を受信できます。

ソケット・オプションはsetOptionメソッドを使用して構成されます。 SctpMultiChannelは次のオプションをサポートしています。

ソケット・オプション
オプション名 説明
SCTP_DISABLE_FRAGMENTS メッセージの断片化を有効または無効にします
SCTP_EXPLICIT_COMPLETE 明示的なメッセージの完了を有効または無効にします
SCTP_FRAGMENT_INTERLEAVE メッセージ受信者に対するメッセージの表現方法を制御します
SCTP_INIT_MAXSTREAMS アソシエーションの初期化中にローカル・エンドポイントで要求されたストリームの最大数
SCTP_NODELAY Nagleに似たアルゴリズムを有効または無効にします
SCTP_PRIMARY_ADDR ローカルSCTPスタックで、指定されたピア・アドレスがアソシエーション・プライマリとして使用されるように要求します
SCTP_SET_PEER_PRIMARY_ADDR 囲まれたアドレスがピアによってアソシエーション・プライマリとしてマークされるように要求します
SO_SNDBUF ソケット送信バッファのサイズ
SO_RCVBUF ソケット受信バッファのサイズ
SO_LINGER 閉じるときにデータが存在する場合は遅延します(ブロック・モードに構成されている場合のみ)
追加(実装固有)のオプションをサポートできる場合もあります。 supportedOptionsメソッドを呼び出すと、サポートされているオプションのリストが取得されます。

SCTPマルチチャネルは、複数の並行スレッドで安全に使用できます。 並行送信および受信をサポートしますが、特定の時点で、送信を行うスレッドも受信を行うスレッドもそれぞれ1個以下のみ存在します。

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

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

    修飾子と型
    メソッド
    説明
    abstract Set<Association>
    このチャネルのソケット上で開いているアソシエーションを返します。
    チャネルのソケットをローカル・アドレスにバインドし、接続を待機するようソケットを構成します。
    bind(SocketAddress local, int backlog)
    チャネルのソケットをローカル・アドレスにバインドし、接続を待機するようソケットを構成します。
    指定されたアドレスをチャネルのソケットにバインドされているアドレスに追加します。
    abstract SctpChannel
    branch(Association association)
    アソシエーションを分岐します。
    abstract Set<SocketAddress>
    このチャネルのソケットがバインドされているすべてのソケット・アドレスを返します。
    abstract <T> T
    getOption(SctpSocketOption<T> name, Association association)
    ソケット・オプションの値を返します。
    abstract Set<SocketAddress>
    このチャネルのソケット上の指定されたアソシエーションが接続されているすべてのリモート・アドレスを返します。
    SCTPマルチチャネルを開きます。
    abstract <T> MessageInfo
    receive(ByteBuffer buffer, T attachment, NotificationHandler<T> handler)
    このチャネル経由でメッセージを受信するか、通知を処理します(あるいはその両方を行います)。
    abstract int
    send(ByteBuffer buffer, MessageInfo messageInfo)
    このチャネル経由でメッセージを送信します。
    abstract <T> SctpMultiChannel
    setOption(SctpSocketOption<T> name, T value, Association association)
    ソケット・オプションの値を設定します。
    shutdown(Association association)
    チャネルを閉じずにアソシエーションを停止します。
    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であるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
  • コンストラクタの詳細

    • SctpMultiChannel

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

    • open

      public static SctpMultiChannel open() throws IOException
      SCTPマルチチャネルを開きます。

      新しいチャネルは未バインドです。

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

      public abstract Set<Association> associations() throws IOException
      このチャネルのソケット上で開いているアソシエーションを返します。

      返されるアソシエーションのセットには、COMM_UPアソシエーション変更イベントが受信されたアソシエーションのみが含まれます。 COMM_LOSTまたはSHUTDOWNアソシエーション変更イベントが受信されたアソシエーションは、アソシエーションのセットから削除されます。

      返されるアソシエーションのセットは、このメソッドが呼び出された時点で開いているアソシエーションのスナップショットです。

      戻り値:
      開いているアソシエーションが含まれるSet、開いているアソシエーションが存在しない場合は空のSet
      スロー:
      ClosedChannelException - このチャネルがクローズしている場合
      IOException - その他の入出力エラーが発生した場合
    • bind

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

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

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

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

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

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

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

      bind(local, 0);
      

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

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

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

      このメソッドが正常に完了したあとに設定される新しいアソシエーションでは、指定されたアドレスと関連付けされます。 既存のアソシエーションにアドレスを追加することはオプションの機能です。 エンド・ポイントで動的なアドレス再構成がサポートされている場合は、ピア・アドレスのリストを変更するために、適切なメッセージがピアに送信されることがあります。

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

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

      指定されたアドレスは、ワイルドカード・アドレスであってはいけません。 このメソッドを呼び出す前に、まずbindを使用してチャネルをバインドする必要があります。そうしないと、NotYetBoundExceptionがスローされます。

      バインドされたアドレスの1つとしてaddressが含まれないチャネルまたはバインドされているローカル・アドレスが1つしかないチャネルでこのメソッドが呼び出された場合はIllegalUnbindExceptionがスローされます。

      bindを使用してチャネルのソケットがバインドされる初期アドレスは、チャネルのソケットにバインドされたアドレスから削除される可能性があります。

      このメソッドが正常に完了したあとに設定される新しいアソシエーションでは、指定されたアドレスと関連付けされません。 既存のアソシエーションからアドレスを削除することはオプションの機能です。 エンド・ポイントで動的なアドレス再構成がサポートされている場合は、ピア・アドレスのリストを変更するために、適切なメッセージがピアに送信されることがあります。

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

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

      public abstract Set<SocketAddress> getRemoteAddresses(Association association) throws IOException
      このチャネルのソケット上の指定されたアソシエーションが接続されているすべてのリモート・アドレスを返します。
      パラメータ:
      association - アソシエーション
      戻り値:
      指定されたアソシエーションのすべてのリモート・アドレス、アソシエーションが停止している場合は空のSet
      スロー:
      ClosedChannelException - チャネルがクローズしている場合
      IOException - 入出力エラーが発生した場合
    • shutdown

      public abstract SctpMultiChannel shutdown(Association association) throws IOException
      チャネルを閉じずにアソシエーションを停止します。
      パラメータ:
      association - 停止するアソシエーション
      戻り値:
      このチャネル
      スロー:
      ClosedChannelException - このチャネルがクローズしている場合
      IOException - その他の入出力エラーが発生した場合
    • getOption

      public abstract <T> T getOption(SctpSocketOption<T> name, Association association) throws IOException
      ソケット・オプションの値を返します。

      一部のオプションがチャネルのソケットで取得されるため、associationパラメータは適用されず、指定されても無視されることに注意してください。 ただし、アソシエーション固有のオプションである場合は、そのアソシエーションを指定する必要があります。

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

      public abstract <T> SctpMultiChannel setOption(SctpSocketOption<T> name, T value, Association association) throws IOException
      ソケット・オプションの値を設定します。

      一部のオプションがチャネルのソケットで取得されるため、associationパラメータは適用されず、指定されても無視されることに注意してください。 ただし、アソシエーション固有のオプションである場合は、そのアソシエーションを指定する必要があります。

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

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

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

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

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

      SCTPマルチチャネルは、読み込みと書込みをサポートするため、このメソッドは(SelectionKey.OP_READ | SelectionKey.OP_WRITE)を返します。

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

      public abstract <T> MessageInfo receive(ByteBuffer buffer, T attachment, NotificationHandler<T> handler) throws IOException
      このチャネル経由でメッセージを受信するか、通知を処理します(あるいはその両方を行います)。

      メッセージまたは通知をすぐに使用できる場合、またはこのチャネルがブロック・モードで動作していて、最終的に使用可能になる場合は、そのメッセージが返されるか、通知が処理されます。 このチャネルが非ブロック・モードで動作していて、メッセージまたは通知をすぐに使用できない場合は、このメソッドはただちにnullを返します。

      このメソッドがメッセージを受け取ると、そのメッセージは指定されたbyteバッファにコピーされ、MessageInfoが返されます。 メッセージは指定されたbyteバッファの現在位置に転送され、バッファの位置は読み取られたバイト数だけ増分されます。 メッセージの保持に必要なバイト数よりバッファに残っているバイト数が少ない場合、または基礎となる入力バッファに完全なメッセージが含まれていない場合、戻された MessageInfoisCompleteを呼び出すとfalseが返され、このメソッドの呼出しは、messgaeを完全に消費するために必要になります。 どのストリームでも、一度に1つのメッセージが部分的に配信されるのみです。 ソケット・オプションSCTP_FRAGMENT_INTERLEAVEは、メッセージのインタレースが発生する様々な側面を制御します。

      このメソッドが通知を受信した場合は、指定されたハンドラの適切なメソッド(存在する場合)が呼び出されます。 ハンドラでCONTINUEが返された場合、このメソッドは別のメッセージまたは通知を受信しようとします。RETURNが返された場合、このメソッドはnullを返します。 ハンドラでキャッチされない例外がスローされた場合は、その例外がこのメソッドからスタックまで伝播されます。

      このメソッドはいつでも呼び出すことができます。 別のスレッドがこのチャネルに対して受信操作をすでに開始している場合、このメソッドの呼出しは最初の操作が終わるまでブロックされます。 前述の同期ポリシーを強制するために使用されるロックを保持せずに、指定されたハンドラが呼び出された場合は、ハンドラによる他のスレッドの受信が停止されません。 ハンドラは、このチャネルのreceiveメソッドを呼び出すことはできません。呼び出した場合は、IllegalReceiveExceptionがスローされます。

      型パラメータ:
      T - 添付のタイプ
      パラメータ:
      buffer - バイトの転送先バッファ
      attachment - 受信操作に接続されるオブジェクト。nullも可
      handler - SCTPスタックからの通知を処理するハンドラ、通知を無視する場合はnull
      戻り値:
      MessageInfo、このチャネルが非ブロック・モードで動作していて、メッセージがすぐに使用できない場合、または通知が処理されたあとに通知ハンドラがRETURNを返す場合はnull
      スロー:
      ClosedChannelException - このチャネルがクローズしている場合
      AsynchronousCloseException - 読取り操作の進行中に、別のスレッドによってこのチャネルがクローズされた場合
      ClosedByInterruptException - 読取り操作の進行中に別のスレッドが現在のスレッドを中断した場合、チャネルをクローズし、現在のスレッドの中断ステータスを設定します
      NotYetBoundException - このチャネルがまだバインドされていない場合
      IllegalReceiveException - 指定されたハンドラでこのチャネルのreceiveメソッドが呼び出される場合
      IOException - その他の入出力エラーが発生した場合
    • send

      public abstract int send(ByteBuffer buffer, MessageInfo messageInfo) throws IOException
      このチャネル経由でメッセージを送信します。

      このチャネルが未バウンドの場合、このメソッドはデータの送信前にbind(null, 0)を呼び出します。

      このチャネルのソケットと意図された受信側(指定されたmessageInfo内のアドレスで識別)との間にアソシエーションが存在しない場合は、意図された受信側にアソシエーションが自動的に設定されます。 これは、暗黙的なアソシエーション設定であると考えられます。 正常にアソシエーションが設定されると、eventパラメータがCOMM_UPに設定されたSCTPスタックにassociation changed通知が配置されます。 receiveを呼び出すと、この通知を受信できます。

      このチャネルがブロック・モードで、基になる出力バッファに十分な容量がある場合、指定されたbyteバッファ内に残っているバイトは単一のメッセージとして転送されます。 このチャネルのソケットで明示的なメッセージの完了SCTP_EXPLICIT_COMPLETEソケット・オプションが有効になっていなければ、メッセージの送信はアトミックです。

      このチャネルが非ブロック・モードで、基になる出力バッファに十分な容量があり、暗黙的なアソシエーション設定が必要な場合、SCTP_EXPLICIT_COMPLETEに従って、指定されたbyteバッファ内に残っているバイトは単一のメッセージとして転送されます。 何らかの理由でメッセージを配信できない場合、eventパラメータがCANT_STARTに設定された状態でassociation changed通知がSCTPスタックに配置されます。

      メッセージは、通常のwrite操作を実行した場合と同様に、byteバッファから転送されます。

      このメソッドはいつでも呼び出すことができます。 別のスレッドがこのチャネルに対して送信操作をすでに開始している場合、このメソッドの呼出しは最初の操作が終わるまでブロックされます。

      パラメータ:
      buffer - 送信されるメッセージを含むバッファ
      messageInfo - 送信されるメッセージに関する補助データ
      戻り値:
      送信バイト数(このメソッドを呼び出したときにメッセージ・バッファ内に残っていたバイト数)。このチャネルが非ブロック・モードで動作しており、基準となる出力バッファの容量が不十分なためメッセージが収まりきらない場合はゼロ
      スロー:
      InvalidStreamException - streamNumberが負の値である場合、またはアソシエーションがすでに存在していてstreamNumberが出力ストリームの最大数よりも大きい場合
      ClosedChannelException - このチャネルがクローズしている場合
      AsynchronousCloseException - 読取り操作の進行中に、別のスレッドによってこのチャネルがクローズされた場合
      ClosedByInterruptException - 読取り操作の進行中に別のスレッドが現在のスレッドを中断した場合、チャネルをクローズし、現在のスレッドの中断ステータスを設定します
      IOException - その他の入出力エラーが発生した場合
    • branch

      public abstract SctpChannel branch(Association association) throws IOException
      アソシエーションを分岐します。

      アプリケーションはこのメソッドを呼び出して、アソシエーションを異なるチャネルに分岐できます。 アソシエーションに新しくバインドおよび接続されたSctpChannelが作成されます。 分岐されたアソシエーションは、このチャネルの一部ではなくなります。

      これは、たとえばアプリケーションで、散発的に発生する複数の送信側/受信側を元のSCTPマルチチャネルに残したまま、大量のデータ・トラフィックを伝送するアソシエーションを専用の独立SCTPチャネルに分岐する場合に、特に役立ちます。

      パラメータ:
      association - 分岐するアソシエーション
      戻り値:
      SctpChannel
      スロー:
      ClosedChannelException - このチャネルがクローズしている場合
      IOException - その他の入出力エラーが発生した場合