- 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套接字的可选通道。一个
SCTPServerChannel通过调用创建open这个类的方法。 新创建的SCTP服务器通道已打开但尚未绑定。 尝试调用未绑定通道的accept方法将导致抛出NotYetBoundException。 可以通过调用此类定义的bind方法之一来绑定SCTP服务器通道。使用
setOption方法配置套接字选项。 SCTP服务器套接字通道支持以下选项:
还可以支持其他(特定于实现的)选项。 支持的选项列表是通过调用Option Name 描述 SCTP_INIT_MAXSTREAMSThe maximum number of streams requested by the local endpoint during association initialization supportedOptions方法获得的。SCTP服务器通道可供多个并发线程使用。
- 从以下版本开始:
- 1.7
-
-
构造方法摘要
构造方法 变量 构造器 描述 protectedSctpServerChannel(SelectorProvider provider)初始化此类的新实例。
-
方法摘要
所有方法 静态方法 实例方法 抽象方法 具体的方法 变量和类型 方法 描述 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.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之一将其绑定到特定地址。- 结果
- 一个新的SCTP服务器通道
- 异常
-
UnsupportedOperationException- 如果不支持SCTP协议 -
IOException- 如果发生I / O错误
-
accept
public abstract SctpChannel accept() throws IOException
接受此频道套接字上的关联。如果此通道处于非阻塞模式,则此方法将立即返回
null如果没有待处理的关联)。 否则它将无限期地阻塞,直到新的关联可用或发生I / O错误。无论此通道的阻塞模式如何,此方法返回的
SCTPChannel(如果有)都将处于阻塞模式。如果已安装安全管理器,则对于每个新关联,此方法将验证安全管理器
checkAccept方法是否允许关联的远程对等方的地址和端口号。- 结果
-
新关联的SCTP通道,如果此通道处于非阻塞模式且没有可接受的关联,
null - 异常
-
ClosedChannelException- 如果此频道已关闭 -
AsynchronousCloseException- 如果另一个线程在接受操作正在进行时关闭此通道 -
ClosedByInterruptException- 如果另一个线程在接受操作正在进行时中断当前线程,从而关闭通道并设置当前线程的中断状态 -
NotYetBoundException- 如果此通道的套接字尚未绑定 -
SecurityException- 如果已安装安全管理器且不允许访问新关联的远程对等方 -
IOException- 如果发生其他一些I / O错误
-
bind
public final SctpServerChannel bind(SocketAddress local) throws IOException
将通道的套接字绑定到本地地址,并配置套接字以侦听关联。此方法的工作方式就像调用它等同于计算表达式一样:
bind(local, 0);
- 参数
-
local- 绑定套接字的本地地址,或null将套接字绑定到自动分配的套接字地址 - 结果
- 这个频道
- 异常
-
ClosedChannelException- 如果此渠道已关闭 -
AlreadyBoundException- 如果此通道已绑定 -
UnsupportedAddressTypeException- 如果不支持给定地址的类型 -
SecurityException- 如果已安装安全管理器且其checkListen方法拒绝操作 -
IOException- 如果发生其他一些I / O错误
-
bind
public abstract SctpServerChannel bind(SocketAddress local, int backlog) throws IOException
将通道的套接字绑定到本地地址,并配置套接字以侦听关联。此方法用于建立套接字和本地地址之间的关系。 一旦建立了关系,套接字将保持绑定直到通道关闭。 此关系可能不一定与地址
local因为它可能被unbindAddress删除,但是一旦此方法的调用成功完成,将始终至少有一个本地地址绑定到通道的套接字。一旦通道的套接字成功绑定到特定地址(未自动分配),可以使用
bindAddress将更多地址绑定到该地址 ,或使用unbindAddress将其删除。backlog参数是套接字上的最大挂起关联数。 它的确切语义是特定于实现的。 实现可以强制实现特定的最大长度,或者可以选择忽略该参数。 如果backlog参数的值为
0,或者为负值,则使用特定于实现的默认值。- 参数
-
local- 绑定套接字的本地地址,或null将套接字绑定到自动分配的套接字地址 -
backlog- 待处理关联的最大数量 - 结果
- 这个频道
- 异常
-
ClosedChannelException- 如果此渠道已关闭 -
AlreadyBoundException- 如果此通道已绑定 -
UnsupportedAddressTypeException- 如果不支持给定地址的类型 -
SecurityException- 如果已安装安全管理器且其checkListen方法拒绝操作 -
IOException- 如果发生其他一些I / O错误
-
bindAddress
public abstract SctpServerChannel bindAddress(InetAddress address) throws IOException
将给定地址添加到通道套接字的绑定地址。给定的地址不能是
wildcard地址。 在调用此方法之前,必须首先使用bind绑定通道,否则抛出NotYetBoundException。bind方法将SocketAddress作为其参数,通常包含端口号和地址。 使用此方法进行后续绑定的地址只是地址,因为SCTP端口号在通道的生命周期内保持不变。此方法成功完成后接受的新关联将与给定地址相关联。
- 参数
-
address- 要添加到套接字的绑定地址的地址 - 结果
- 这个频道
- 异常
-
ClosedChannelException- 如果此渠道已关闭 -
NotYetBoundException- 如果此频道尚未绑定 -
AlreadyBoundException- 如果此通道已绑定到给定地址 -
IllegalArgumentException- 如果地址是null或wildcard地址 -
IOException- 如果发生其他一些I / O错误
-
unbindAddress
public abstract SctpServerChannel unbindAddress(InetAddress address) throws IOException
从通道套接字的绑定地址中删除给定地址。给定地址不得为
wildcard地址。 在调用此方法之前,必须首先使用bind绑定通道,否则抛出NotYetBoundException。 如果在没有address作为其绑定地址之一的通道上调用此方法,或者只绑定了一个本地地址,则此方法将抛出IllegalUnbindException。 可以从通道套接字的绑定地址中删除通道的套接字使用bind绑定的初始地址。此方法成功完成后接受的新关联将不与给定地址关联。
- 参数
-
address- 要从套接字的绑定地址中删除的地址 - 结果
- 这个频道
- 异常
-
ClosedChannelException- 如果此渠道已关闭 -
NotYetBoundException- 如果此频道尚未绑定 -
IllegalArgumentException- 如果地址是null或wildcard地址 -
IllegalUnbindException- 如果实现不支持从侦听套接字中删除地址,则address未绑定到通道的套接字,或者通道只有一个绑定到它的地址 -
IOException- 如果发生其他一些I / O错误
-
getAllLocalAddresses
public abstract Set<SocketAddress> getAllLocalAddresses() throws IOException
返回此通道的套接字绑定到的所有套接字地址。- 结果
-
此通道的套接字绑定的所有套接字地址,如果通道的套接字未绑定,
Set空Set - 异常
-
ClosedChannelException- 如果频道已关闭 -
IOException- 如果发生I / O错误
-
getOption
public abstract <T> T getOption(SctpSocketOption<T> name) throws IOException
返回套接字选项的值。- 参数类型
-
T- 套接字选项值的类型 - 参数
-
name- 套接字选项 - 结果
-
套接字选项的值。
值
null可能是某些套接字选项的有效值。 - 异常
-
UnsupportedOperationException- 如果此通道不支持套接字选项 -
ClosedChannelException- 如果此渠道已关闭 -
IOException- 如果发生I / O错误 - 另请参见:
-
SctpStandardSocketOptions
-
setOption
public abstract <T> SctpServerChannel setOption(SctpSocketOption<T> name, T value) throws IOException
设置套接字选项的值。- 参数类型
-
T- 套接字选项值的类型 - 参数
-
name- 套接字选项 -
value- 套接字选项的值。 值null可能是某些套接字选项的有效值。 - 结果
- 这个频道
- 异常
-
UnsupportedOperationException- 如果此通道不支持套接字选项 -
IllegalArgumentException- 如果该值不是此套接字选项的有效值 -
ClosedChannelException- 如果此频道已关闭 -
IOException- 如果发生I / O错误 - 另请参见:
-
SctpStandardSocketOptions
-
supportedOptions
public abstract Set<SctpSocketOption<?>> supportedOptions()
返回此通道支持的一组套接字选项。即使在关闭通道后,此方法仍将继续返回选项集。
- 结果
- 此通道支持的一组套接字选项
-
validOps
public final int validOps()
返回标识此通道支持的操作的操作集。SCTP服务器通道仅支持接受新关联,因此此方法返回
SelectionKey.OP_ACCEPT。- Specified by:
-
validOps在类SelectableChannel - 结果
- 有效操作集
-
-