public abstract class SctpServerChannel extends AbstractSelectableChannel
このクラスの open
メソッドを呼び出すと、SCTPServerChannel
が作成されます。新しく作成された SCTP サーバーチャネルはオープンですが、未バインドです。バインドされていないチャネルの accept
メソッドを呼び出そうとすると、NotYetBoundException
がスローされます。SCTP サーバーチャネルは、このクラスによって定義される bind
メソッドの 1 つを呼び出すことによってバインドできます。
ソケットオプションは setOption
メソッドを使用して構成されます。SCTP サーバーソケットチャネルでは次のオプションがサポートされます。
追加 (実装固有) のオプションをサポートできる場合もあります。
オプション名 説明 SCTP_INIT_MAXSTREAMS
アソシエーションの初期化中にローカルエンドポイントで要求されたストリームの最大数
supportedOptions
メソッドを呼び出すと、サポートされているオプションのリストが取得されます。
SCTP サーバーチャネルは、複数の並行スレッドで安全に使用できます。
修飾子 | コンストラクタと説明 |
---|---|
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()
このチャネルのサポートされている操作を識別する操作セットを返します。
|
blockingLock, configureBlocking, implCloseChannel, implCloseSelectableChannel, implConfigureBlocking, isBlocking, isRegistered, keyFor, provider, register
register
begin, close, end, isOpen
protected SctpServerChannel(SelectorProvider provider)
provider
- このチャネルのセレクタプロバイダpublic static SctpServerChannel open() throws IOException
新しいチャネルのソケットは、初期状態では未バインドです。ソケットの bind
メソッドの 1 つを使って特定のアドレスにバインドしないと、アソシエーションは受け付けられません。
UnsupportedOperationException
- SCTP プロトコルがサポートされていない場合IOException
- 入出力エラーが発生した場合public abstract SctpChannel accept() throws IOException
このチャネルが非ブロックモードの場合、保留されているアソシエーションがなければ、このメソッドはただちに null
を返します。それ以外の場合、新しいアソシエーションが利用可能になるか、入出力エラーが発生するまで無期限にブロックされます。
このメソッドによって返される SCTPChannel
は、このチャネルがブロックモードであってもそうでなくてもブロックモードになります。
セキュリティーマネージャーがインストールされている場合、このメソッドは新しい各アソシエーションについてアソシエーションのリモートピアのアドレスおよびポート番号がセキュリティーマネージャーの checkAccept
メソッドによって許可されていることを確認します。
null
ClosedChannelException
- このチャネルがクローズしている場合AsynchronousCloseException
- 受け付け操作の進行中に、別のスレッドによってこのチャネルがクローズされた場合ClosedByInterruptException
- 受け付け操作の進行中に、現在のスレッドに対して別のスレッドから割り込みがあったためにチャネルがクローズし、現在のスレッドの割り込みステータスが設定された場合NotYetBoundException
- このチャネルのソケットが未バインドの場合SecurityException
- セキュリティーマネージャーがインストールされていて、新しいアソシエーションのリモートピアへのアクセスが許可されていない場合IOException
- その他の入出力エラーが発生した場合public final SctpServerChannel bind(SocketAddress local) throws IOException
このメソッドの呼び出しは、式を評価することと同様に動作します。
bind(local, 0);
local
- ソケットのバインド先のローカルアドレス、または自動的に割り当てられるソケットアドレスにソケットをバインドする場合は null
ClosedChannelException
- このチャネルがクローズしている場合AlreadyBoundException
- このチャネルがすでにバインドされている場合UnsupportedAddressTypeException
- 指定されたアドレスのタイプがサポート対象外の場合SecurityException
- セキュリティーマネージャーがインストールされていて、checkListen
メソッドが操作を拒否した場合IOException
- その他の入出力エラーが発生した場合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
- その他の入出力エラーが発生した場合public abstract SctpServerChannel bindAddress(InetAddress address) throws IOException
指定されたアドレスは、wildcard
アドレスであってはいけません。このメソッドを呼び出す前に、まず bind
を使用してチャネルをバインドする必要があります。そうしなければ、NotYetBoundException
がスローされます。bind
メソッドは、引数として SocketAddress
をとります。通常は、アドレスに加えてポート番号も含まれます。チャネルの存続期間内は SCTP ポート番号は同じままであるため、その後、このメソッドを使用してバインドされたアドレスには単にアドレスのみが含まれます。
このメソッドが正常に完了したあとに受け付けられる新しいアソシエーションでは、指定されたアドレスと関連付けされます。
address
- ソケットにバインドされたアドレスに追加されるアドレスClosedChannelException
- このチャネルがクローズしている場合NotYetBoundException
- このチャネルがまだバインドされていない場合AlreadyBoundException
- このチャネルがすでに指定されたアドレスにバインドされている場合IllegalArgumentException
- アドレスが null
または wildcard
アドレスの場合IOException
- その他の入出力エラーが発生した場合public abstract SctpServerChannel unbindAddress(InetAddress address) throws IOException
指定されたアドレスは、wildcard
アドレスであってはいけません。このメソッドを呼び出す前に、まず bind
を使用してチャネルをバインドする必要があります。そうしなければ、NotYetBoundException
がスローされます。バインドされたアドレスの 1 つとして address
が含まれないチャネルまたはバインドされているローカルアドレスが 1 つしかないチャネルでこのメソッドが呼び出された場合は IllegalUnbindException
がスローされます。bind
を使用してチャネルのソケットがバインドされる初期アドレスは、チャネルのソケットにバインドされたアドレスから削除される可能性があります。
このメソッドが正常に完了したあとに受け付けられる新しいアソシエーションでは、指定されたアドレスと関連付けされません。
address
- ソケットにバインドされたアドレスから削除されるアドレスClosedChannelException
- このチャネルがクローズしている場合NotYetBoundException
- このチャネルがまだバインドされていない場合IllegalArgumentException
- アドレスが null
または wildcard
アドレスの場合IllegalUnbindException
- 実装でリスニングソケットからのアドレスの削除をサポートしない場合、address
はチャネルのソケットにバインドされません。それ以外の場合、チャネルにはバインドされたアドレスが 1 つのみありますIOException
- その他の入出力エラーが発生した場合public abstract Set<SocketAddress> getAllLocalAddresses() throws IOException
Set
ClosedChannelException
- チャネルがクローズしている場合IOException
- 入出力エラーが発生した場合public abstract <T> T getOption(SctpSocketOption<T> name) throws IOException
name
- ソケットオプションnull
の値が有効な値である場合があります。UnsupportedOperationException
- チャネルがソケットオプションをサポートしていない場合ClosedChannelException
- このチャネルがクローズしている場合IOException
- 入出力エラーが発生した場合SctpStandardSocketOptions
public abstract <T> SctpServerChannel setOption(SctpSocketOption<T> name, T value) throws IOException
name
- ソケットオプションvalue
- ソケットオプションの値。一部のソケットオプションに対しては、null
の値が有効な値である場合があります。UnsupportedOperationException
- チャネルがソケットオプションをサポートしていない場合IllegalArgumentException
- 値がこのソケットオプションに対して有効な値でない場合ClosedChannelException
- このチャネルがクローズしている場合IOException
- 入出力エラーが発生した場合SctpStandardSocketOptions
public abstract Set<SctpSocketOption<?>> supportedOptions()
このメソッドは、チャネルが閉じられたあとでも引き続きオプションのセットを返します。
public final int validOps()
SCTP サーバーチャネルは新しいアソシエーションの受け入れのみをサポートしているため、このメソッドは SelectionKey.OP_ACCEPT
を返します。
validOps
、クラス: SelectableChannel
Copyright © 2009, 2013, Oracle and/or its affiliates. All rights reserved.