- 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
-
-
コンストラクタのサマリー
コンストラクタ 修飾子 コンストラクタ 説明 protectedSctpServerChannel(SelectorProvider provider)このクラスの新しいインスタンスを初期化します。
-
メソッドのサマリー
すべてのメソッド staticメソッド インスタンス・メソッド 抽象メソッド 具象メソッド 修飾子と型 メソッド 説明 abstract SctpChannelaccept()このチャネルのソケット上のアソシエーションを受け入れます。SctpServerChannelbind(SocketAddress local)チャネルのソケットをローカル・アドレスにバインドし、アソシエーションを待機するようソケットを構成します。abstract SctpServerChannelbind(SocketAddress local, int backlog)チャネルのソケットをローカル・アドレスにバインドし、アソシエーションを待機するようソケットを構成します。abstract SctpServerChannelbindAddress(InetAddress address)指定されたアドレスをチャネルのソケットにバインドされているアドレスに追加します。abstract Set<SocketAddress>getAllLocalAddresses()このチャネルのソケットがバインドされているすべてのソケット・アドレスを返します。abstract <T> TgetOption(SctpSocketOption<T> name)ソケット・オプションの値を返します。static SctpServerChannelopen()SCTPサーバー・チャネルを開きます。abstract <T> SctpServerChannelsetOption(SctpSocketOption<T> name, T value)ソケット・オプションの値を設定します。abstract Set<SctpSocketOption<?>>supportedOptions()このチャネルがサポートするソケット・オプションのセットを返します。abstract SctpServerChannelunbindAddress(InetAddress address)指定されたアドレスをチャネルのソケットにバインドされているアドレスから削除します。intvalidOps()このチャネルのサポートされている操作を識別する操作セットを返します。-
クラス java.nio.channels.spi.AbstractInterruptibleChannelから継承されたメソッド
begin, close, end, isOpen
-
クラス java.nio.channels.spi.AbstractSelectableChannelから継承されたメソッド
blockingLock, configureBlocking, implCloseChannel, implCloseSelectableChannel, implConfigureBlocking, isBlocking, isRegistered, keyFor, provider, register
-
クラス java.lang.Objectから継承されたメソッド
clone、equals、finalize、getClass、hashCode、notify、notifyAll、toString、wait、wait、wait
-
クラス java.nio.channels.SelectableChannelから継承されたメソッド
register
-
-
-
-
コンストラクタの詳細
-
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- ソケットのバインド先のローカル・アドレス、または自動的に割り当てられるソケット・アドレスにソケットをバインドする場合はnullbacklog- 保留中の関連付けの最大数- 戻り値:
- このチャネル
- 例外:
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- 戻り値:
- 有効な操作セット
-
-