Most visited

Recently visited

Added in API level 24

StandardSocketOptions

public final class StandardSocketOptions
extends Object

java.lang.Object
   ↳ java.net.StandardSocketOptions


定义 标准套接字选项。

由这个类定义的每个套接字选项的 name是它的字段名称。

在此版本中,这里定义的插座选项由使用 network在通道 channels包。

Summary

Fields

public static final SocketOption<NetworkInterface> IP_MULTICAST_IF

互联网协议(IP)多播数据报的网络接口。

public static final SocketOption<Boolean> IP_MULTICAST_LOOP

互联网协议(IP)多播数据报的环回。

public static final SocketOption<Integer> IP_MULTICAST_TTL

Internet协议(IP)多播数据报 的生存时间

public static final SocketOption<Integer> IP_TOS

Internet协议(IP)头中的服务类型(ToS)八位字节。

public static final SocketOption<Boolean> SO_BROADCAST

允许传输广播数据报。

public static final SocketOption<Boolean> SO_KEEPALIVE

保持连接活着。

public static final SocketOption<Integer> SO_LINGER

如果数据存在,则关闭。

public static final SocketOption<Integer> SO_RCVBUF

套接字接收缓冲区的大小。

public static final SocketOption<Boolean> SO_REUSEADDR

重新使用地址。

public static final SocketOption<Integer> SO_SNDBUF

套接字发送缓冲区的大小。

public static final SocketOption<Boolean> TCP_NODELAY

禁用Nagle算法。

Inherited methods

From class java.lang.Object

Fields

IP_MULTICAST_IF

Added in API level 24
SocketOption<NetworkInterface> IP_MULTICAST_IF

互联网协议(IP)多播数据报的网络接口。

此套接字选项的值为NetworkInterface ,表示由面向数据报套接字发送的多播数据报的传出接口。 对于IPv6套接字,系统依赖于设置此选项是否也设置发送到IPv4地址的多路广播数据报的传出接口。

此套接字选项的初始/默认值可能为null以指示出站接口将由操作系统选择,通常基于网络路由表。 一个实现允许在套接字被绑定后设置这个套接字选项。 在绑定套接字之前,是否可以查询或更改套接字选项取决于系统。

也可以看看:

IP_MULTICAST_LOOP

Added in API level 24
SocketOption<Boolean> IP_MULTICAST_LOOP

互联网协议(IP)多播数据报的环回。

此套接字选项的值是控制多播数据报回送Boolean 套接字选项的值表示该选项是启用还是禁用。

这个套接字选项的确切语义是依赖于系统的。 特别是,系统依赖于回送是否适用于从套接字发送或由套接字接收的多播数据报。 对于IPv6套接字,则该选项是否也适用于发送到IPv4地址的多播数据报,这取决于系统。

此套接字选项的初始/默认值为TRUE 一个实现允许在套接字被绑定后设置这个套接字选项。 在绑定套接字之前,是否可以查询或更改套接字选项取决于系统。

也可以看看:

IP_MULTICAST_TTL

Added in API level 24
SocketOption<Integer> IP_MULTICAST_TTL

Internet协议(IP)多播数据报 的生存时间

此套接字选项的值为Integer ,范围为0 <= value <= 255 它用于控制面向数据报套接字发送的多播数据报的范围。 对于IPv4套接字,该选项是由套接字发送的多播数据报的生存时间(TTL)。 TTL为零的数据报不在网络上传输,但可以在本地传送。 IPv6套接字的情况下,该选项是跳数限制 ,即在数据报到达网络之前数据报可以通过的跳数 对于IPv6套接字,系统依赖于该选项是否还设置发送到IPv4地址的多播数据报的生存时间。

生存时间设置的初始值/默认值通常为1 一个实现允许在套接字被绑定后设置这个套接字选项。 在绑定套接字之前,是否可以查询或更改套接字选项取决于系统。

也可以看看:

IP_TOS

Added in API level 24
SocketOption<Integer> IP_TOS

Internet协议(IP)头中的服务类型(ToS)八位字节。

此套接字选项的值为Integer表示由套接字发送到IPv4套接字的IP数据包中的ToS八位字节的值。 ToS八位字节的解释是网络特定的,不是由这个类定义的。 有关ToS八位字节的更多信息,请参阅RFC 1349RFC 2474 套接字选项的值是一个提示 实现可能会忽略该值,或忽略特定的值。

ToS字节中的TOS字段的初始/默认值是特定于实现的,但通常为0 对于面向数据报的套接字,可以在套接字绑定后的任何时候配置该选项。 发送后续数据报时使用八位位组的新值。 在绑定套接字之前,是否可以查询或更改此选项取决于系统。

此发行版未定义此套接字选项在面向流的套接字或 IPv6套接字上的行为。

也可以看看:

SO_BROADCAST

Added in API level 24
SocketOption<Boolean> SO_BROADCAST

允许传输广播数据报。

此套接字选项的值为Boolean ,表示该选项是启用还是禁用。 该选项特定于发送到IPv4广播地址的面向数据报的套接字。 当启用套接字选项时,套接字可用于发送广播数据报

此套接字选项的初始值为FALSE 套接字选项可以随时启用或禁用。 某些操作系统可能要求启动Java虚拟机时使用实现特定的权限来启用此选项或发送广播数据报。

也可以看看:

SO_KEEPALIVE

Added in API level 24
SocketOption<Boolean> SO_KEEPALIVE

保持连接活着。

此套接字选项的值为Boolean ,表示该选项是启用还是禁用。 当启用SO_KEEPALIVE选项时,操作系统可能会使用保持活动机制在连接空闲时定期探测连接的另一端。 保持活动机制的确切语义是依赖于系统的,因此是未指定的。

此套接字选项的初始值为FALSE 套接字选项可以随时启用或禁用。

也可以看看:

SO_LINGER

Added in API level 24
SocketOption<Integer> SO_LINGER

如果数据存在,则关闭。

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

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

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

也可以看看:

SO_RCVBUF

Added in API level 24
SocketOption<Integer> SO_RCVBUF

套接字接收缓冲区的大小。

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

对于面向数据报的套接字,接收缓冲区的大小可能会限制可以接收的数据报的大小。 是否可以接收大于缓冲区大小的数据报取决于系统。 对于数据报爆发以比它们可以被处理的速度更快到达的情况,增加套接字接收缓冲区可能是重要的。

在面向流的套接字和TCP / IP协议的情况下,当将TCP接收窗口的大小通告给远程对等体时,可以使用套接字接收缓冲区的大小。

套接字接收缓冲区的初始/默认大小以及允许值的范围取决于系统,尽管不允许负大小。 尝试将套接字接收缓冲区设置为大于其最大大小时,会将其设置为其最大大小。

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

也可以看看:

SO_REUSEADDR

Added in API level 24
SocketOption<Boolean> SO_REUSEADDR

重新使用地址。

此套接字选项的值为Boolean ,表示该选项是启用还是禁用。 这个套接字选项的确切语义是套接字类型和系统相关的。

在面向流的套接字的情况下,当涉及该套接字地址的先前连接处于TIME_WAIT状态时,此套接字选项通常将确定套接字是否可以绑定到套接字地址。 在语义不同的实现上,并且在上一次连接处于此状态时不需要启用套接字选项以绑定套接字时,实现可能会选择忽略此选项。

对于面向数据报的套接字,套接字选项用于允许多个程序绑定到相同的地址。 当套接字用于Internet协议(IP)多播时,应启用此选项。

一个实现允许在套接字绑定或连接之前设置此套接字选项。 套接字绑定后更改此套接字选项的值不起作用。 此套接字选项的默认值取决于系统。

也可以看看:

SO_SNDBUF

Added in API level 24
SocketOption<Integer> SO_SNDBUF

套接字发送缓冲区的大小。

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

对于面向数据报的套接字,发送缓冲区的大小可能会限制套接字可能发送的数据报的大小。 是否发送或丢弃大于缓冲区大小的数据报取决于系统。

套接字发送缓冲区的初始/默认大小和允许值的范围取决于系统,尽管不允许负大小。 尝试将套接字发送缓冲区设置为大于其最大大小时,会将其设置为其最大大小。

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

也可以看看:

TCP_NODELAY

Added in API level 24
SocketOption<Boolean> TCP_NODELAY

禁用Nagle算法。

此套接字选项的值为Boolean ,表示该选项是启用还是禁用。 套接字选项特定于使用TCP / IP协议的面向流的套接字。 TCP / IP使用称为Nagle算法的算法来合并短段并提高网络效率。

此套接字选项的默认值为FALSE 只有在知道合并影响性能的情况下才应启用套接字选项。 套接字选项可以随时启用。 换句话说,Nagle算法可以被禁用。 一旦启用该选项,系统会依赖于它是否可以随后禁用。 如果不能,则调用setOption方法禁用该选项不起作用。

也可以看看:

Hooray!