模块 jdk.net
 jdk.net

类 ExtendedSocketOptions

java.lang.Object
jdk.net.ExtendedSocketOptions

public final class ExtendedSocketOptions extends Object
定义扩展套接字选项,超出 StandardSocketOptions 中定义的选项。这些选项可能是特定于平台的。
自从:
1.8
  • 字段详细信息

    • TCP_QUICKACK

      public static final SocketOption <Boolean > TCP_QUICKACK
      禁用延迟确认。

      此套接字选项可用于减少或禁用延迟确认 (ACK)。启用 TCP_QUICKACK 后,将立即发送 ACK,而不是根据正常 TCP 操作的需要延迟发送。此选项不是永久性的,它仅允许切换到 TCP_QUICKACK 模式或从 TCP_QUICKACK 模式切换。 TCP 协议的后续操作将再次禁用/启用 TCP_QUICKACK 模式,具体取决于内部协议处理和延迟 ACK 超时发生和数据传输等因素,因此需要在给定套接字上的每次 TCP 操作后使用 setOption 设置此选项。

      此套接字选项的值是一个Boolean,表示该选项是启用还是禁用。套接字选项特定于使用 TCP/IP 协议的面向流的套接字。此套接字选项的确切语义取决于套接字类型和系统。

      自从:
      10
    • TCP_KEEPIDLE

      public static final SocketOption <Integer > TCP_KEEPIDLE
      Keep-Alive 空闲时间。

      此套接字选项的值是一个 Integer,它是 keep-alive 启动探测之前空闲时间的秒数。套接字选项特定于使用 TCP/IP 协议的面向流的套接字。此套接字选项的确切语义取决于系统。

      启用 SO_KEEPALIVE 选项后,TCP 会探测已空闲一段时间的连接。此空闲期的默认值取决于系统,但通常为 2 小时。 TCP_KEEPIDLE 选项可用于影响给定套接字的此值。

      自从:
      11
    • TCP_KEEPINTERVAL

      public static final SocketOption <Integer > TCP_KEEPINTERVAL
      Keep-Alive 重传间隔时间。

      此套接字选项的值是一个Integer,即重新传输保持活动探测之前等待的秒数。套接字选项特定于使用 TCP/IP 协议的面向流的套接字。此套接字选项的确切语义取决于系统。

      启用 SO_KEEPALIVE 选项后,TCP 会探测已空闲一段时间的连接。如果远程系统不响应保持活动探测,TCP 会在一段时间后重新传输探测。此重传间隔的默认值取决于系统,但通常为 75 秒。 TCP_KEEPINTERVAL 选项可用于影响给定套接字的此值。

      自从:
      11
    • TCP_KEEPCOUNT

      public static final SocketOption <Integer > TCP_KEEPCOUNT
      Keep-Alive 重传最大限制。

      此套接字选项的值为Integer,即要发送的保持活动探测的最大数量。套接字选项特定于使用 TCP/IP 协议的面向流的套接字。此套接字选项的确切语义取决于系统。

      启用 SO_KEEPALIVE 选项后,TCP 会探测已空闲一段时间的连接。如果远程系统不响应保持活动探测,则 TCP 会在连接被视为断开之前重新传输探测一定次数。此保持活动探测重传限制的默认值取决于系统,但通常为 8。TCP_KEEPCOUNT 选项可用于影响给定套接字的此值。

      自从:
      11
    • SO_INCOMING_NAPI_ID

      public static final SocketOption <Integer > SO_INCOMING_NAPI_ID
      标识接收到套接字的最后一个传入数据包的接收队列。

      此套接字选项的值为正值 Integer,它标识一个接收队列,应用程序可使用该队列根据队列标识符在线程之间拆分传入流。值是0当socket没有绑定,数据包还没有收到,或者更一般的,当没有接收队列来识别的时候。面向流和面向数据报的套接字都支持套接字选项。

      套接字选项是只读的,尝试设置套接字选项将抛出 SocketException

      API 注意:
      网络设备可能有多个队列或通道来传输和接收网络数据包。 SO_INCOMING_NAPI_ID socket 选项向应用程序提供提示,以指示传入套接字连接或该连接的数据包定向到的接收队列。应用程序可以通过在一个线程上处理分配给特定队列的所有套接字连接来利用这一点。
      自从:
      15
    • SO_PEERCRED

      public static final SocketOption <UnixDomainPrincipal > SO_PEERCRED
      Unix 域对等凭据。

      此套接字选项的值是一个 UnixDomainPrincipal ,它表示连接到 Unix 域套接字的对等点的凭据。凭据是在首次连接或接受套接字时应用的凭据。

      套接字选项是只读的,尝试设置套接字选项将抛出 SocketException 。尝试获取未连接的 Unix 域套接字上的套接字选项的值时,也会抛出 SocketException

      自从:
      16
    • IP_DONTFRAGMENT

      public static final SocketOption <Boolean > IP_DONTFRAGMENT
      禁用 IP 数据包分段。

      此套接字选项的值是一个Boolean,表示该选项是启用还是禁用。当 true 传出 IPv4 和 IPv6 数据包的碎片没有发生时。此选项只能与数据报套接字一起使用。设置时,必须注意将传出数据包大小限制为 local MTU 。根据实现和网络接口,大于 MTU 的数据包可能会被静默发送或丢弃,或者丢弃并抛出异常。对于 IPv6 套接字,该选项是否也适用于发送到 IPv4 地址的数据报取决于系统。

      API 注意:
      对于 IPv4,此选项在 IP 数据包标头中设置 DF(不分段)标志。这指示中间路由器不要对数据包进行分段。 IPv6 路由器从不对数据包进行分段。相反,碎片由发送和接收节点专门处理。为 IPv6 套接字设置此选项可确保要发送的数据包永远不会分段,在这种情况下,必须遵守本地网络 MTU。