StandardSocketOptions
中定义的选项。这些选项可能是特定于平台的。
- 自从:
- 1.8
-
字段摘要
字段修饰符和类型Field描述static final SocketOption<Boolean>
禁用 IP 数据包分段。static final SocketOption<Integer>
标识接收到套接字的最后一个传入数据包的接收队列。static final SocketOption<UnixDomainPrincipal>
Unix 域对等凭据。static final SocketOption<Integer>
Keep-Alive 重传最大限制。static final SocketOption<Integer>
Keep-Alive 空闲时间。static final SocketOption<Integer>
Keep-Alive 重传间隔时间。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
Keep-Alive 空闲时间。此套接字选项的值是一个
Integer
,它是 keep-alive 启动探测之前空闲时间的秒数。套接字选项特定于使用 TCP/IP 协议的面向流的套接字。此套接字选项的确切语义取决于系统。启用
SO_KEEPALIVE
选项后,TCP 会探测已空闲一段时间的连接。此空闲期的默认值取决于系统,但通常为 2 小时。TCP_KEEPIDLE
选项可用于影响给定套接字的此值。- 自从:
- 11
-
TCP_KEEPINTERVAL
Keep-Alive 重传间隔时间。此套接字选项的值是一个
Integer
,即重新传输保持活动探测之前等待的秒数。套接字选项特定于使用 TCP/IP 协议的面向流的套接字。此套接字选项的确切语义取决于系统。启用
SO_KEEPALIVE
选项后,TCP 会探测已空闲一段时间的连接。如果远程系统不响应保持活动探测,TCP 会在一段时间后重新传输探测。此重传间隔的默认值取决于系统,但通常为 75 秒。TCP_KEEPINTERVAL
选项可用于影响给定套接字的此值。- 自从:
- 11
-
TCP_KEEPCOUNT
Keep-Alive 重传最大限制。此套接字选项的值为
Integer
,即要发送的保持活动探测的最大数量。套接字选项特定于使用 TCP/IP 协议的面向流的套接字。此套接字选项的确切语义取决于系统。启用
SO_KEEPALIVE
选项后,TCP 会探测已空闲一段时间的连接。如果远程系统不响应保持活动探测,则 TCP 会在连接被视为断开之前重新传输探测一定次数。此保持活动探测重传限制的默认值取决于系统,但通常为 8。TCP_KEEPCOUNT
选项可用于影响给定套接字的此值。- 自从:
- 11
-
SO_INCOMING_NAPI_ID
标识接收到套接字的最后一个传入数据包的接收队列。此套接字选项的值为正值
Integer
,它标识一个接收队列,应用程序可使用该队列根据队列标识符在线程之间拆分传入流。值是0
当socket没有绑定,数据包还没有收到,或者更一般的,当没有接收队列来识别的时候。面向流和面向数据报的套接字都支持套接字选项。套接字选项是只读的,尝试设置套接字选项将抛出
SocketException
。- API 注意:
-
网络设备可能有多个队列或通道来传输和接收网络数据包。
SO_INCOMING_NAPI_ID
socket 选项向应用程序提供提示,以指示传入套接字连接或该连接的数据包定向到的接收队列。应用程序可以通过在一个线程上处理分配给特定队列的所有套接字连接来利用这一点。 - 自从:
- 15
-
SO_PEERCRED
Unix 域对等凭据。此套接字选项的值是一个
UnixDomainPrincipal
,它表示连接到 Unix 域套接字的对等点的凭据。凭据是在首次连接或接受套接字时应用的凭据。套接字选项是只读的,尝试设置套接字选项将抛出
SocketException
。尝试获取未连接的 Unix 域套接字上的套接字选项的值时,也会抛出SocketException
。- 自从:
- 16
-
IP_DONTFRAGMENT
禁用 IP 数据包分段。此套接字选项的值是一个
Boolean
,表示该选项是启用还是禁用。当true
传出 IPv4 和 IPv6 数据包的碎片没有发生时。此选项只能与数据报套接字一起使用。设置时,必须注意将传出数据包大小限制为local MTU
。根据实现和网络接口,大于 MTU 的数据包可能会被静默发送或丢弃,或者丢弃并抛出异常。对于IPv6
套接字,该选项是否也适用于发送到 IPv4 地址的数据报取决于系统。- API 注意:
- 对于 IPv4,此选项在 IP 数据包标头中设置 DF(不分段)标志。这指示中间路由器不要对数据包进行分段。 IPv6 路由器从不对数据包进行分段。相反,碎片由发送和接收节点专门处理。为 IPv6 套接字设置此选项可确保要发送的数据包永远不会分段,在这种情况下,必须遵守本地网络 MTU。
-