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

クラスSctpChannel

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

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

SCTPチャネルは、1つのSCTPアソシエーションのみを制御できます。 このクラスのいずれかのopenメソッドを呼び出すと、SCTPChannelが作成されます。 新しく作成されたチャネルはオープンですが、接続は確立されていません。つまり、リモート・ピアとのアソシエーション設定はありません。 未接続のチャネルに対して入出力操作を呼び出そうとすると、NotYetConnectedExceptionがスローされます。 アソシエーションを設定するには、いずれかのconnectメソッドを使用してチャネルを接続します。 接続されたチャネルは、クローズされるまで接続されたままになります。 チャネルが接続されているかどうかは、getRemoteAddressesの呼出しによって判断できます。

SCTPチャネルは非ブロック接続をサポートします。チャネルの作成とリモート・ソケットへのリンクを確立するプロセスの開始はconnectメソッドによって行われ、後でfinishConnectメソッドによって完了します。 接続操作が実行中であるかどうかは、isConnectionPendingメソッドの呼出しによって判断できます。

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

ソケット・オプション
オプション名 説明
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個以下です。 connectメソッドとfinishConnectメソッドは相互に同期しており、いずれかのメソッドの呼出し中に送信または受信操作を開始しようとすると、この処理はその呼出しが完了するまでブロックされます。

導入されたバージョン:
1.7