- java.lang.Object
-
- java.nio.channels.spi.AbstractInterruptibleChannel
-
- java.nio.channels.SelectableChannel
-
- java.nio.channels.spi.AbstractSelectableChannel
-
- com.sun.nio.sctp.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
SctpServerChannel(SelectorProvider provider)
このクラスの新しいインスタンスを初期化します。
-
メソッドのサマリー
修飾子と型 メソッド 説明 abstract SctpChannel
accept()
このチャネルのソケット上のアソシエーションを受け入れます。SctpServerChannel
bind(SocketAddress local)
チャネルのソケットをローカル・アドレスにバインドし、アソシエーションを待機するようソケットを構成します。abstract SctpServerChannel
bind(SocketAddress local, int backlog)
チャネルのソケットをローカル・アドレスにバインドし、アソシエーションを待機するようソケットを構成します。abstract SctpServerChannel
bindAddress(InetAddress address)
指定されたアドレスをチャネルのソケットにバインドされているアドレスに追加します。abstract Set<SocketAddress>
getAllLocalAddresses()
このチャネルのソケットがバインドされているすべてのソケット・アドレスを返します。abstract <T> T
getOption(SctpSocketOption<T> name)
ソケット・オプションの値を返します。static SctpServerChannel
open()
SCTPサーバー・チャネルを開きます。abstract <T> SctpServerChannel
setOption(SctpSocketOption<T> name, T value)
ソケット・オプションの値を設定します。abstract Set<SctpSocketOption<?>>
supportedOptions()
このチャネルがサポートするソケット・オプションのセットを返します。abstract SctpServerChannel
unbindAddress(InetAddress address)
指定されたアドレスをチャネルのソケットにバインドされているアドレスから削除します。int
validOps()
このチャネルのサポートされている操作を識別する操作セットを返します。-
クラス java.nio.channels.spi.AbstractSelectableChannelで宣言されたメソッド
configureBlocking, implCloseChannel, implCloseSelectableChannel, implConfigureBlocking, provider, register
-
クラス java.nio.channels.SelectableChannelで宣言されたメソッド
blockingLock, isBlocking, isRegistered, keyFor, register
-
クラス java.nio.channels.spi.AbstractInterruptibleChannelで宣言されたメソッド
begin, close, end
-
-
-
-
コンストラクタの詳細
-
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
は、このチャネルがブロック・モードであってもそうでなくてもブロック・モードになります。セキュリティ・マネージャがインストールされている場合、このメソッドは新しい各アソシエーションについてアソシエーションのリモート・ピアのアドレスおよびポート番号がセキュリティ・マネージャの
checkAccept
メソッドによって許可されていることを確認します。- 戻り値:
- 新しいアソシエーションのSCTPチャネル。このチャネルが非ブロック・モードで、受け付け可能なアソシエーションが存在しない場合は
null
- 例外:
ClosedChannelException
- このチャネルがクローズしている場合AsynchronousCloseException
- 受け付け操作の進行中に、別のスレッドによってこのチャネルがクローズされた場合ClosedByInterruptException
- 受け付け操作の進行中に、現在のスレッドに対して別のスレッドから割込みがあったためにチャネルがクローズし、現在のスレッドの割込みステータスが設定された場合NotYetBoundException
- このチャネルのソケットが未バインドの場合SecurityException
- セキュリティ・マネージャがインストールされていて、新しいアソシエーションのリモート・ピアへのアクセスが許可されていない場合IOException
- その他の入出力エラーが発生した場合
-
bind
public final SctpServerChannel bind(SocketAddress local) throws IOException
チャネルのソケットをローカル・アドレスにバインドし、アソシエーションを待機するようソケットを構成します。このメソッドの呼出しは、式を評価することと同様に動作します。
bind(local, 0);
- パラメータ:
local
- ソケットのバインド先のローカル・アドレス、または自動的に割り当てられるソケット・アドレスにソケットをバインドする場合はnull
- 戻り値:
- このチャネル
- 例外:
ClosedChannelException
- このチャネルがクローズしている場合AlreadyBoundException
- このチャネルがすでにバインドされている場合UnsupportedAddressTypeException
- 指定されたアドレスのタイプがサポート対象外の場合SecurityException
- セキュリティ・マネージャがインストールされていて、checkListen
メソッドが操作を拒否した場合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
- 指定されたアドレスのタイプがサポート対象外の場合SecurityException
- セキュリティ・マネージャがインストールされていて、checkListen
メソッドが操作を拒否した場合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
- 入出力エラーが発生した場合- 関連項目:
SctpStandardSocketOptions
-
setOption
public abstract <T> SctpServerChannel setOption(SctpSocketOption<T> name, T value) throws IOException
ソケット・オプションの値を設定します。- 型パラメータ:
T
- ソケット・オプション値のタイプ- パラメータ:
name
- ソケット・オプションvalue
- ソケット・オプションの値。 一部のソケット・オプションに対しては、null
の値が有効な値である場合があります。- 戻り値:
- このチャネル
- 例外:
UnsupportedOperationException
- チャネルがソケット・オプションをサポートしていない場合IllegalArgumentException
- 値がこのソケット・オプションに対して有効な値でない場合ClosedChannelException
- このチャネルがクローズしている場合IOException
- 入出力エラーが発生した場合- 関連項目:
SctpStandardSocketOptions
-
supportedOptions
public abstract Set<SctpSocketOption<?>> supportedOptions()
このチャネルがサポートするソケット・オプションのセットを返します。このメソッドは、チャネルが閉じられたあとでも引き続きオプションのセットを返します。
- 戻り値:
- このチャネルでサポートされるソケット・オプションのセット
-
validOps
public final int validOps()
このチャネルのサポートされている操作を識別する操作セットを返します。SCTPサーバー・チャネルは新しいアソシエーションの受け入れのみをサポートしているため、このメソッドは
SelectionKey.OP_ACCEPT
を返します。- 定義:
validOps
、クラス:SelectableChannel
- 戻り値:
- 有効な操作セット
-
-