模块 jdk.sctp

类 SctpStandardSocketOptions

java.lang.Object
com.sun.nio.sctp.SctpStandardSocketOptions

public class SctpStandardSocketOptions extends Object
SCTP 通道支持此类定义的套接字选项(以及特定通道类中列出的套接字选项),并且可能支持其他特定于实现的套接字选项。
自从:
1.7
  • 字段详细信息

    • SCTP_DISABLE_FRAGMENTS

      public static final SctpSocketOption <Boolean > SCTP_DISABLE_FRAGMENTS
      启用或禁用消息碎片。

      此套接字选项的值是一个Boolean,表示该选项是启用还是禁用。如果启用,则不会执行 SCTP 消息分段。相反,如果正在发送的消息超过当前 PMTU 大小,则不会发送消息并向用户指示错误。

      是否支持此选项是特定于实现的。

    • SCTP_EXPLICIT_COMPLETE

      public static final SctpSocketOption <Boolean > SCTP_EXPLICIT_COMPLETE
      启用或禁用显式消息完成。

      此套接字选项的值是一个Boolean,表示该选项是启用还是禁用。启用此选项后,可以多次调用 send 方法来发送消息。 MessageInfo isComplete 参数只能设置为 true 最后发送以指示消息完成。如果禁用此选项,则每个单独的 send 调用都被视为已完成。

      该选项的默认值为false,表示该选项被禁用。是否支持此选项是特定于实现的。

    • SCTP_FRAGMENT_INTERLEAVE

      public static final SctpSocketOption <Integer > SCTP_FRAGMENT_INTERLEAVE
      分段交错控制如何为消息接收者呈现消息。定义了三个级别的片段交织。其中两个级别影响 SctpChannel ,而 SctpMultiChannel 受所有三个级别的影响。

      此选项采用 Integer 值。它可以设置为 012 的值。

      设置三个级别可提供以下接收器交互:

      level 0 - 防止任何消息交织。这意味着当部分传递开始时,除了被部分传递的消息之外,不会收到其他消息。如果另一条消息到达可以传递的不同流(或关联),它将被阻塞,等待用户阅读所有部分传递的消息。

      level 1 - 允许交错来自不同协会的消息。对于 SctpChannel ,级别 0 和级别 1 具有相同的含义,因为 SctpChannel 始终从同一关联接收消息。请注意,将 SctpMultiChannel 设置为此级别可能会导致来自不同关联的多个部分交付,但对于任何给定的关联,只有一条消息将被交付,直到消息的所有部分都已交付。这意味着使用关联标识“X”读取的一条大消息将阻止来自关联“X”的其他消息被传递。

      level 2 - 允许完全交错消息。此级别要求发送方不仅要仔细观察对等点Association,还必须注意流号。启用此选项后,可以开始为关联“X”流“Y”传递部分传递的消息,并且下一个后续接收可能会返回来自关联“X”流“Z”的消息。请注意,在读取流“Y”的所有部分传递的消息之前,不会为关联“X”流“Y”传递任何其他消息。请注意,此选项会影响两种通道类型。另请注意,对于SctpMultiChannel,不仅来自同一关联的另一个流消息可能会从下一次接收中传递,一些其他关联消息可能会在下一次接收时传递。

      是否支持此选项是特定于实现的。

    • SCTP_INIT_MAXSTREAMS

      public static final SctpSocketOption <SctpStandardSocketOptions.InitMaxStreams > SCTP_INIT_MAXSTREAMS
      关联初始化期间本地端点请求的最大流数。

      此套接字选项的值为 InitMaxStreams ,表示通道上的关联准备支持的入站和出站流的最大数量。

      对于 SctpChannel 此选项只能用于在连接之前更改入站/出站流的数量。

      对于 SctpMultiChannel 此选项确定通道上的新关联设置将准备支持的入站/出站流的最大数量。

      对于 SctpServerChannel 此选项确定接受的套接字将与其连接对等方协商的入站/出站流的最大数量。

      在所有情况下,此选项设置的值都用于协商通道套接字上的新关联设置,并且可以从适当的 Association 检索已与对等方协商的入站/出站流的实际最大数量。 Association 可以从属于该协会的 COMM_UP AssociationChangeNotification 中检索。

      该值受实际实现的限制。换句话说,用户可能能够支持比操作系统更多的流。在这种情况下,操作系统限制可能会重写用户请求的值。默认值 0 表示使用端点默认值。

    • SCTP_NODELAY

      public static final SctpSocketOption <Boolean > SCTP_NODELAY
      启用或禁用类似 Nagle 的算法。

      此套接字选项的值是一个Boolean,表示该选项是启用还是禁用。 SCTP 使用类似 The Nagle Algorithm 的算法来合并短段并提高网络效率。

    • SCTP_PRIMARY_ADDR

      public static final SctpSocketOption <SocketAddress > SCTP_PRIMARY_ADDR
      请求本地 SCTP 堆栈使用给定的对等地址作为关联主地址。

      此套接字选项的值为 SocketAddress,表示本地 SCTP 堆栈应用作关联主节点的对等地址。该地址必须是关联对等方的地址之一。

      一个SctpMultiChannel可以控制多个关联,设置或获取该选项时必须给出关联参数。

      由于SctpChannel只控制一个关联,所以不需要关联参数,可以直接设置或查询该选项。

    • SCTP_SET_PEER_PRIMARY_ADDR

      public static final SctpSocketOption <SocketAddress > SCTP_SET_PEER_PRIMARY_ADDR
      请求对等方将封闭地址标记为关联主地址。

      此套接字选项的值是一个 SocketAddress,表示对等方应用作其主地址的本地地址。给定地址必须是关联的本地绑定地址之一。

      一个SctpMultiChannel可以控制多个关联,设置或获取该选项时必须给出关联参数。

      由于SctpChannel只控制一个关联,不需要关联参数,直接查询该选项即可。

      请注意,这是一个仅限设置的选项, getOption 无法检索。是否支持此选项是特定于实现的。

    • SO_SNDBUF

      public static final SctpSocketOption <Integer > SO_SNDBUF
      套接字发送缓冲区的大小。

      此套接字选项的值是一个Integer,它是套接字发送缓冲区的大小(以字节为单位)。套接字发送缓冲区是网络实现使用的输出缓冲区。对于高容量连接,可能需要增加它。套接字选项的值是一个 hint 用于调整缓冲区大小的实现,实际大小可能不同。可以查询套接字选项以检索实际大小。

      对于 SctpChannel ,这控制了 SCTP 堆栈可能在内部缓冲区中等待发送的数据量。因此,此选项限制了可以在单个发送调用中发送的最大数据大小。

      对于 SctpMultiChannel ,效果与 SctpChannel 相同,只是它适用于所有关联。该选项分别适用于每个关联的窗口大小。

      一个实现允许在绑定或连接套接字之前设置此套接字选项。实现是否允许套接字绑定后更改套接字发送缓冲区取决于系统。

    • SO_RCVBUF

      public static final SctpSocketOption <Integer > SO_RCVBUF
      套接字接收缓冲区的大小。

      此套接字选项的值是一个Integer,它是套接字接收缓冲区的大小(以字节为单位)。套接字接收缓冲区是网络实现使用的输入缓冲区。可能需要为高容量连接增加或减少以限制传入数据的可能积压。套接字选项的值是一个 hint 用于调整缓冲区大小的实现,实际大小可能不同。

      对于 SctpChannel ,它控制接收器窗口大小。

      对于 SctpMultiChannel ,含义取决于实现。它可以控制绑定到套接字描述符的每个关联的接收缓冲区,也可以控制整个套接字的接收缓冲区。

      一个实现允许在绑定或连接套接字之前设置此套接字选项。一个实现是否允许在绑定套接字后更改套接字接收缓冲区是系统相关的。

    • SO_LINGER

      public static final SctpSocketOption <Integer > SO_LINGER
      如果存在数据,请在关闭时停留。

      此套接字选项的值是一个Integer,它控制当未发送的数据在套接字上排队并调用关闭套接字的方法时采取的操作。如果套接字选项的值为零或更大,则它表示超时值(以秒为单位),称为 linger interval 。逗留时间间隔是 close 方法在操作系统尝试传输未发送的数据或决定无法传输数据时阻塞的超时时间。如果套接字选项的值小于零,则该选项被禁用。在那种情况下,close 方法不会等到未发送的数据被传输;如果可能,操作系统将在连接关闭之前传输任何未发送的数据。

      此套接字选项仅用于在 blocking 模式下配置的套接字。未定义在非阻塞套接字上启用此选项时 close 方法的行为。

      此套接字选项的初始值为负值,表示该选项被禁用。可以随时启用该选项,或更改延迟间隔。延迟间隔的最大值取决于系统。将延迟时间间隔设置为大于其最大值的值会导致将延迟时间间隔设置为其最大值。