モジュール jdk.sctp
パッケージ com.sun.nio.sctp

クラスSctpMultiChannel

java.lang.Object
すべての実装されたインタフェース:
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