public interface SocketOptions
在这个接口中指定选项的方法和常数只用于实现。如果你不继承socketimpl或datagramsocketimpl,你不会直接使用这些。有类型安全的方法来获取/设置每个插座,这些选项ServerSocket,DatagramSocket和多播套接字。
Modifier and Type | Field and Description |
---|---|
static int |
IP_MULTICAST_IF
设置发送多播包的传出接口。
|
static int |
IP_MULTICAST_IF2
与上述相同。
|
static int |
IP_MULTICAST_LOOP
该选项启用或禁用组播数据报的本地回环。
|
static int |
IP_TOS
这个选项设置服务或交通类字段的类型在IP头TCP或UDP套接字。
|
static int |
SO_BINDADDR
获取套接字的本地地址绑定(此选项不能被“设置”只“得到”,因为套接字在创建时被绑定,因此本地绑定的地址无法更改。
|
static int |
SO_BROADCAST
集so_broadcast一插座。
|
static int |
SO_KEEPALIVE
当一个选项被设置为TCP套接字和没有数据被交换在插座的任一方向2小时(注:实际值是依赖于实现的),TCP自动发送KeepAlive探测到同伴。
|
static int |
SO_LINGER
指定在关闭超时时间。
|
static int |
SO_OOBINLINE
当oobinline选项设置,任何TCP紧急数据接收插座将通过套接字接收输入流。
|
static int |
SO_RCVBUF
设置一个提示为即将进入的网络I / O.的平台所使用的底层缓冲区的大小
|
static int |
SO_REUSEADDR
集so_reuseaddr一插座。
|
static int |
SO_SNDBUF
设置一个提示为即将离任的网络I / O.平台所使用的底层缓冲区的大小
|
static int |
SO_TIMEOUT
设置阻塞套接字操作的超时时间:
|
static int |
TCP_NODELAY
此连接禁用Nagle的算法。
|
@Native static final int TCP_NODELAY
只适用于TCP:SocketImpl。
@Native static final int SO_BINDADDR
此选项必须在构造函数中指定。
有效期:socketimpl,DatagramSocketImpl
@Native static final int SO_REUSEADDR
有效期:datagramsocketimpl
@Native static final int SO_BROADCAST
@Native static final int IP_MULTICAST_IF
有效期:datagramsocketimpl组播
@Native static final int IP_MULTICAST_IF2
@Native static final int IP_MULTICAST_LOOP
@Native static final int IP_TOS
@Native static final int SO_LINGER
只适用于TCP:socketimpl
@Native static final int SO_TIMEOUT
ServerSocket。();socketinputstream。read();receive() DatagramSocket;
在进入阻塞操作之前必须设置选项以生效。如果超时和操作将继续阻止了,java.io.interruptedioexception。在这种情况下,套接字不关闭。
适用于所有插座:socketimpl,DatagramSocketImpl
@Native static final int SO_SNDBUF
@Native static final int SO_RCVBUF
@Native static final int SO_KEEPALIVE
@Native static final int SO_OOBINLINE
void setOption(int optID, Object value) throws SocketException
socketimpl S;…s.setoption(so_linger,新的整数(10));/ /好的集so_linger W /超时10秒。s.setoption(so_linger,新的双(10));/ /错误预计java.lang.integer如果请求的选项是二进制的,它可以使用这种方法的java.lang.boolean:
s.setoption(tcp_nodelay,新的布尔(真的));/ /好让tcp_nodelay,二进制选项
s.setoption(tcp_nodelay,新的布尔(假));/ /好禁用tcp_nodelays.setoption(so_linger,新的布尔(假));/ /好禁用so_linger
optID
标识选项
value
的套接字选项的参数
SocketException
-如果选项是无法识别的,插座是封闭的,或者是一些低级错误的发生
getOption(int)
Object getOption(int optID) throws SocketException
socketimpl S;…布尔刻不容缓=(布尔)(s.getoption(tcp_nodelay));如果(刻不容缓。booleanvalue()){/如果tcp_nodelay启用……}
选项,以特定类型作为参数,getOption(int)将返回参数的值,否则返回java。lang.Boolean(假):
对象= s.getoption(so_linger);如果(O是整数){系统的打印(“持续时间”+((整数)O)。intvalue());其他{ }/ / O真类是java。lang.Boolean(假);}
optID
-
int
识别选择取
SocketException
如果关闭套接字
SocketException
-如果optid未知沿协议栈(包括socketimpl)
setOption(int, java.lang.Object)
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.