- 所有已实现的接口:
Closeable,AutoCloseable,Channel,InterruptibleChannel
通过调用此类的 open 方法创建 SCTPServerChannel。新创建的 SCTP 服务通道已打开但尚未绑定。尝试调用未绑定通道的 accept 方法将导致抛出 NotYetBoundException 。可以通过调用此类定义的 bind 方法之一来绑定 SCTP 服务通道。
使用 setOption 方法配置套接字选项。 SCTP 服务套接字通道支持以下选项:
还可以支持其他(特定于实现的)选项。支持的选项列表通过调用
选项名称 Description SCTP_INIT_MAXSTREAMS关联初始化时本地端点请求的最大流数
supportedOptions 方法获得。
SCTP 服务通道可供多个并发线程使用是安全的。
- 自从:
- 1.7
-
构造方法总结
构造方法 -
方法总结
修饰符和类型方法描述abstract SctpChannelaccept()接受此通道套接字上的关联。final SctpServerChannelbind(SocketAddress local) 将通道的套接字绑定到本地地址并配置套接字以监听关联。abstract SctpServerChannelbind(SocketAddress local, int backlog) 将通道的套接字绑定到本地地址并配置套接字以监听关联。abstract SctpServerChannelbindAddress(InetAddress address) 将给定地址添加到通道套接字的绑定地址。abstract Set<SocketAddress>返回此通道的套接字绑定到的所有套接字地址。abstract <T> TgetOption(SctpSocketOption<T> name) 返回套接字选项的值。static SctpServerChannelopen()打开 SCTP 服务通道。abstract <T> SctpServerChannelsetOption(SctpSocketOption<T> name, T value) 设置套接字选项的值。abstract Set<SctpSocketOption<?>>返回此通道支持的一组套接字选项。abstract SctpServerChannelunbindAddress(InetAddress address) 从通道套接字的绑定地址中删除给定地址。final intvalidOps()返回标识此通道支持的操作的操作集。在类 java.nio.channels.spi.AbstractSelectableChannel 中声明的方法
blockingLock, configureBlocking, implCloseChannel, implCloseSelectableChannel, implConfigureBlocking, isBlocking, isRegistered, keyFor, provider, register在类 java.nio.channels.SelectableChannel 中声明的方法
register在类 java.nio.channels.spi.AbstractInterruptibleChannel 中声明的方法
begin, close, end, isOpen
-
构造方法详细信息
-
SctpServerChannel
初始化此类的新实例。- 参数:
provider- 此通道的选择器提供程序
-
-
方法详情
-
open
打开 SCTP 服务通道。新通道的套接字最初是未绑定的;在接受关联之前,它必须通过其套接字的
bind方法之一绑定到特定地址。- 返回:
- 一个新的 SCTP 服务通道
- 抛出:
UnsupportedOperationException- 如果不支持 SCTP 协议IOException- 如果发生 I/O 错误
-
accept
接受此通道套接字上的关联。如果此通道处于非阻塞模式,则如果没有未决关联,此方法将立即返回
null。否则它将无限期阻塞,直到有可用的新关联或发生 I/O 错误。该方法返回的
SCTPChannel,如果有的话,无论该通道的阻塞模式如何,都将处于阻塞模式。如果安装了安全管理器,则对于每个新关联,此方法验证安全管理器的
checkAccept方法是否允许关联的远程对等方的地址和端口号。- 返回:
-
新关联的 SCTP 通道,或者
null如果此通道处于非阻塞模式并且没有可用的关联被接受 - 抛出:
ClosedChannelException- 如果此通道关闭AsynchronousCloseException- 如果另一个线程在接受操作正在进行时关闭此通道ClosedByInterruptException- 如果另一个线程在accept操作进行时中断当前线程,从而关闭通道并设置当前线程的中断状态NotYetBoundException- 如果此通道的套接字尚未绑定SecurityException- 如果安装了安全管理器并且它不允许访问新关联的远程对等点IOException- 如果发生其他 I/O 错误
-
bind
将通道的套接字绑定到本地地址并配置套接字以监听关联。此方法的工作原理就好像调用它等同于计算表达式:
bind(local, 0);
- 参数:
local- 绑定套接字的本地地址,或null将套接字绑定到自动分配的套接字地址- 返回:
- 这个通道
- 抛出:
ClosedChannelException- 如果此通道关闭AlreadyBoundException- 如果这个通道已经绑定UnsupportedAddressTypeException- 如果不支持给定地址的类型SecurityException- 如果安装了安全管理器并且其checkListen方法拒绝操作IOException- 如果发生其他 I/O 错误
-
bind
将通道的套接字绑定到本地地址并配置套接字以监听关联。该方法用于建立套接字和本地地址之间的关系。一旦建立了关系,套接字就会保持绑定状态,直到通道关闭。这种关系不一定与地址
local相关,因为它可能会被unbindAddress删除,但是一旦成功完成此方法的调用,总会有至少一个本地地址绑定到通道的套接字。一旦通道的套接字成功绑定到特定地址(不会自动分配),更多地址可以使用
bindAddress绑定到它,或使用unbindAddress删除。backlog 参数是套接字上未决关联的最大数量。它的确切语义是特定于实现的。一个实现可以强加一个特定于实现的最大长度,或者可以选择忽略该参数。如果 backlog 参数的值为
0或负值,则使用特定于实现的默认值。- 参数:
local- 绑定套接字的本地地址,或null将套接字绑定到自动分配的套接字地址backlog- 挂起关联的最大数量- 返回:
- 这个通道
- 抛出:
ClosedChannelException- 如果此通道关闭AlreadyBoundException- 如果这个通道已经绑定UnsupportedAddressTypeException- 如果不支持给定地址的类型SecurityException- 如果安装了安全管理器并且其checkListen方法拒绝操作IOException- 如果发生其他 I/O 错误
-
bindAddress
将给定地址添加到通道套接字的绑定地址。给定的地址不能是
wildcard地址。在调用此方法之前,必须先使用bind绑定通道,否则将抛出NotYetBoundException。bind方法将SocketAddress作为其参数,该参数通常包含端口号和地址。随后使用此方法绑定的地址只是地址,因为 SCTP 端口号在通道的生命周期内保持不变。在此方法成功完成后接受的新关联将与给定地址关联。
- 参数:
address- 添加到套接字绑定地址的地址- 返回:
- 这个通道
- 抛出:
ClosedChannelException- 如果此通道关闭NotYetBoundException- 如果此通道尚未绑定AlreadyBoundException- 如果此通道已绑定到给定地址IllegalArgumentException- 如果地址是null或wildcard地址IOException- 如果发生其他 I/O 错误
-
unbindAddress
从通道套接字的绑定地址中删除给定地址。给定的地址不能是
wildcard地址。在调用此方法之前,必须先使用bind绑定通道,否则将抛出NotYetBoundException。如果在没有将address作为其绑定地址之一或仅绑定一个本地地址的通道上调用此方法,则此方法将抛出IllegalUnbindException。通道套接字使用bind绑定到的初始地址可能会从通道套接字的绑定地址中删除。此方法成功完成后接受的新关联将不会与给定地址关联。
- 参数:
address- 要从套接字的绑定地址中删除的地址- 返回:
- 这个通道
- 抛出:
ClosedChannelException- 如果此通道关闭NotYetBoundException- 如果此通道尚未绑定IllegalArgumentException- 如果地址是null或wildcard地址IllegalUnbindException- 如果实现不支持从监听套接字中删除地址,则address未绑定到通道的套接字,或者通道只有一个地址绑定到它IOException- 如果发生其他 I/O 错误
-
getAllLocalAddresses
返回此通道的套接字绑定到的所有套接字地址。- 返回:
-
此通道的套接字绑定到的所有套接字地址,如果未绑定通道的套接字,则为空
Set - 抛出:
ClosedChannelException- 如果通道关闭IOException- 如果发生 I/O 错误
-
getOption
返回套接字选项的值。- 类型参数:
T- 套接字选项值的类型- 参数:
name- 套接字选项- 返回:
-
套接字选项的值。
null的值可能是某些套接字选项的有效值。 - 抛出:
UnsupportedOperationException- 如果此通道不支持套接字选项ClosedChannelException- 如果此通道关闭IOException- 如果发生 I/O 错误- 参见:
-
setOption
public abstract <T> SctpServerChannel setOption(SctpSocketOption <T> name, T value) throws IOException 设置套接字选项的值。- 类型参数:
T- 套接字选项值的类型- 参数:
name- 套接字选项value- 套接字选项的值。null的值可能是某些套接字选项的有效值。- 返回:
- 这个通道
- 抛出:
UnsupportedOperationException- 如果此通道不支持套接字选项IllegalArgumentException- 如果该值不是此套接字选项的有效值ClosedChannelException- 如果此通道关闭IOException- 如果发生 I/O 错误- 参见:
-
supportedOptions
返回此通道支持的一组套接字选项。即使在通道关闭后,此方法仍将继续返回选项集。
- 返回:
- 此通道支持的一组套接字选项
-
validOps
public final int validOps()返回标识此通道支持的操作的操作集。SCTP 服务通道仅支持接受新关联,因此该方法返回
SelectionKey.OP_ACCEPT。- 指定者:
validOps在类SelectableChannel中- 返回:
- 有效操作集
-