所有类


java.net
接口 SocketOptions

所有已知实现类:
DatagramSocketImpl, SocketImpl

public interface SocketOptions

获取/设置套接字选项的方法的接口。此接口由 SocketImplDatagramSocketImpl 实现。它们的子类应该重写此接口的方法来支持它们自己的选项。

在此接口中指定选项的方法和常量仅用于实现目的。如果不为 SocketImpl 或 DatagramSocketImpl 创建子类,就不要直接使用它们。在 Socket、ServerSocket、DatagramSocket 和 MulticastSocket 中,存在获取/设置所有这些选项的类型安全的方法。


字段摘要
static intIP_MULTICAST_IF
          设置用于发送多播包的传出接口。
static intIP_MULTICAST_IF2
          同上。
static intIP_MULTICAST_LOOP
          此选项启用或禁用多播数据报的本地回送。
static intIP_TOS
          此选项为 TCP 或 UDP 套接字在 IP 地址头中设置服务类型或流量类字段。
static intSO_BINDADDR
          获取绑定套接字的本地地址(不能仅将此选项“设置”为“得到”,因为套接字是在创建时绑定的,所以本地绑定的地址不可更改)。
static intSO_BROADCAST
          为套接字设置 SO_BROADCAST。
static intSO_KEEPALIVE
          为 TCP 套接字设置 keepalive 选项时,如果在 2 个小时(注:实际值与实现有关)内在任意方向上都没有跨越套接字交换数据,则 TCP 会自动将 keepalive 探头发送到同位体。
static intSO_LINGER
          指定关闭时逗留的超时值。
static intSO_OOBINLINE
          设置 OOBINLINE 选项时,在套接字上接收的所有 TCP 紧急数据都将通过套接字输入流接收。
static intSO_RCVBUF
          设置传入网络 I/O 的平台所使用基础缓冲区的大小的提示。
static intSO_REUSEADDR
          设置套接字的 SO_REUSEADDR。
static intSO_SNDBUF
          设置传出网络 I/O 的平台所使用的基础缓冲区大小的提示。
static intSO_TIMEOUT
          设置阻塞 Socket 操作的超时值: ServerSocket.accept(); SocketInputStream.read(); DatagramSocket.receive(); 选项必须在进入阻塞操作前设置才能生效。
static intTCP_NODELAY
          对此连接禁用 Nagle 算法。
 
方法摘要
 ObjectgetOption(int optID)
          获取选项的值。
 voidsetOption(int optID, Object value)
          启用/禁用 optID 指定的选项。
 

字段详细信息

TCP_NODELAY

static final int TCP_NODELAY
对此连接禁用 Nagle 算法。在确认以前的写入数据之前不会缓冲写入网络的数据。

仅对 TCP (SocketImpl) 有效。

另请参见:
Socket.setTcpNoDelay(boolean), Socket.getTcpNoDelay(), 常量字段值

SO_BINDADDR

static final int SO_BINDADDR
获取绑定套接字的本地地址(不能仅将此选项“设置”为“得到”,因为套接字是在创建时绑定的,所以本地绑定的地址不可更改)。套接字的默认本地地址为 INADDR_ANY,表示多穴主机 (multi-homed host) 上的任何本地地址。多穴主机可以使用此选项接受仅到其地址的连接(在使用 ServerSocket 或 DatagramSocket 的情况下),或者将其返回地址指定到同位体(对于 Socket 或 DatagramSocket)。此选项的参数为 InetAddress。

此选项必须在构造方法中指定。

对 SocketImpl、DatagramSocketImpl 有效。

另请参见:
Socket.getLocalAddress(), DatagramSocket.getLocalAddress(), 常量字段值

SO_REUSEADDR

static final int SO_REUSEADDR
设置套接字的 SO_REUSEADDR。在 java 中,它仅用于 MulticastSocket,默认情况下为 MulticastSocket 设置此选项。

对 DatagramSocketImpl 有效。

另请参见:
常量字段值

SO_BROADCAST

static final int SO_BROADCAST
为套接字设置 SO_BROADCAST。此选项启用和禁用发送广播消息的处理能力。它仅用于数据报套接字和支持广播消息概念的网络上(例如,以太网、令牌网等),默认情况下为 DatagramSocket 设置此选项。

从以下版本开始:
1.4
另请参见:
常量字段值

IP_MULTICAST_IF

static final int IP_MULTICAST_IF
设置用于发送多播包的传出接口。可以在具有多个网络接口的主机上使用,在此类主机上应用程序可能希望使用系统默认值之外的接口。获取/返回 InetAddress。

对多播(DatagramSocketImpl)有效。

另请参见:
MulticastSocket.setInterface(InetAddress), MulticastSocket.getInterface(), 常量字段值

IP_MULTICAST_IF2

static final int IP_MULTICAST_IF2
同上。引入这一选项后,使用 IP_MULTICAST_IF 的行为与以前一样,而新选项可以支持利用 IPv4 和 IPv6 地址设置传出接口。 注:确保不发生与此选项的冲突

从以下版本开始:
1.4
另请参见:
MulticastSocket.setNetworkInterface(NetworkInterface), MulticastSocket.getNetworkInterface(), 常量字段值

IP_MULTICAST_LOOP

static final int IP_MULTICAST_LOOP
此选项启用或禁用多播数据报的本地回送。默认情况下,为 Multicast Socket 启用此选项。

从以下版本开始:
1.4
另请参见:
常量字段值