- java.lang.Object
-
- java.net.SocketImpl
-
- 实现的所有接口
-
SocketOptions
public abstract class SocketImpl extends Object implements SocketOptions
抽象类SocketImpl
是实际实现套接字的所有类的公共超类。 它用于创建客户端和服务器套接字。“普通”套接字完全按照描述实现这些方法,而不尝试通过防火墙或代理。
- 从以下版本开始:
- 1.0
-
-
字段汇总
字段 变量和类型 字段 描述 protected InetAddress
address
此套接字远程端的IP地址。protected FileDescriptor
fd
此套接字的文件描述符对象。protected int
localport
此套接字连接的本地端口号。protected int
port
此套接字连接到的远程主机上的端口号。-
Fields declared in interface java.net.SocketOptions
IP_MULTICAST_IF, IP_MULTICAST_IF2, IP_MULTICAST_LOOP, IP_TOS, SO_BINDADDR, SO_BROADCAST, SO_KEEPALIVE, SO_LINGER, SO_OOBINLINE, SO_RCVBUF, SO_REUSEADDR, SO_REUSEPORT, SO_SNDBUF, SO_TIMEOUT, TCP_NODELAY
-
-
构造方法摘要
构造方法 构造器 描述 SocketImpl()
-
方法摘要
所有方法 实例方法 抽象方法 具体的方法 变量和类型 方法 描述 protected abstract void
accept(SocketImpl s)
接受连接。protected abstract int
available()
返回可以在不阻塞的情况下从此套接字读取的字节数。protected abstract void
bind(InetAddress host, int port)
将此套接字绑定到指定的本地IP地址和端口号。protected abstract void
close()
关闭此套接字。protected abstract void
connect(String host, int port)
将此套接字连接到指定主机上的指定端口。protected abstract void
connect(InetAddress address, int port)
将此套接字连接到指定主机上的指定端口号。protected abstract void
connect(SocketAddress address, int timeout)
将此套接字连接到指定主机上的指定端口号。protected abstract void
create(boolean stream)
创建流或数据报套接字。protected FileDescriptor
getFileDescriptor()
返回此套接字的fd
字段的值。protected InetAddress
getInetAddress()
返回此套接字的address
字段的值。protected abstract InputStream
getInputStream()
返回此套接字的输入流。protected int
getLocalPort()
返回此套接字的localport
字段的值。protected <T> T
getOption(SocketOption<T> name)
被叫获得套接字选项。protected abstract OutputStream
getOutputStream()
返回此套接字的输出流。protected int
getPort()
返回此套接字的port
字段的值。protected abstract void
listen(int backlog)
设置传入连接指示(连接请求)到count
参数的最大队列长度。protected abstract void
sendUrgentData(int data)
在套接字上发送一个字节的紧急数据。protected <T> void
setOption(SocketOption<T> name, T value)
被调用来设置套接字选项。protected void
setPerformancePreferences(int connectionTime, int latency, int bandwidth)
设置此套接字的性能首选项。protected void
shutdownInput()
将此套接字的输入流放在“流结束”。protected void
shutdownOutput()
禁用此套接字的输出流。protected Set<SocketOption<?>>
supportedOptions()
返回此impl支持的一组SocketOptions以及此impl的套接字(Socket或ServerSocket)protected boolean
supportsUrgentData()
返回此SocketImpl是否支持发送紧急数据。String
toString()
以String
返回此套接字的地址和端口。-
声明方法的类 java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
声明方法的接口 java.net.SocketOptions
getOption, setOption
-
-
-
-
字段详细信息
-
fd
protected FileDescriptor fd
此套接字的文件描述符对象。
-
address
protected InetAddress address
此套接字远程端的IP地址。
-
port
protected int port
此套接字连接到的远程主机上的端口号。
-
localport
protected int localport
此套接字连接的本地端口号。
-
-
方法详细信息
-
create
protected abstract void create(boolean stream) throws IOException
创建流或数据报套接字。- 参数
-
stream
- 如果是true
,创建一个流套接字; 否则,创建一个数据报套接字。 - 异常
-
IOException
- 如果在创建套接字时发生I / O错误。
-
connect
protected abstract void connect(String host, int port) throws IOException
将此套接字连接到指定主机上的指定端口。- 参数
-
host
- 远程主机的名称。 -
port
- 端口号。 - 异常
-
IOException
- 如果连接到远程主机时发生I / O错误。
-
connect
protected abstract void connect(InetAddress address, int port) throws IOException
将此套接字连接到指定主机上的指定端口号。- 参数
-
address
- 远程主机的IP地址。 -
port
- 端口号。 - 异常
-
IOException
- 尝试连接时是否发生I / O错误。
-
connect
protected abstract void connect(SocketAddress address, int timeout) throws IOException
将此套接字连接到指定主机上的指定端口号。 超时为零被解释为无限超时。 然后,连接将阻塞,直到建立或发生错误。- 参数
-
address
- 远程主机的套接字地址。 -
timeout
- 超时值,以毫秒为单位,如果没有超时,则为零。 - 异常
-
IOException
- 尝试连接时是否发生I / O错误。 - 从以下版本开始:
- 1.4
-
bind
protected abstract void bind(InetAddress host, int port) throws IOException
将此套接字绑定到指定的本地IP地址和端口号。- 参数
-
host
- 属于本地接口的IP地址。 -
port
- 端口号。 - 异常
-
IOException
- 如果绑定此套接字时发生I / O错误。
-
listen
protected abstract void listen(int backlog) throws IOException
设置传入连接指示(连接请求)到count
参数的最大队列长度。 如果队列已满时连接指示到达,则拒绝连接。- 参数
-
backlog
- 队列的最大长度。 - 异常
-
IOException
- 如果在创建队列时发生I / O错误。
-
accept
protected abstract void accept(SocketImpl s) throws IOException
接受连接。- 参数
-
s
- 已接受的连接。 - 异常
-
IOException
- 如果在接受连接时发生I / O错误。
-
getInputStream
protected abstract InputStream getInputStream() throws IOException
返回此套接字的输入流。- 结果
- 用于从此套接字读取的流。
- 异常
-
IOException
- 如果在创建输入流时发生I / O错误。
-
getOutputStream
protected abstract OutputStream getOutputStream() throws IOException
返回此套接字的输出流。- 结果
- 用于写入此套接字的输出流。
- 异常
-
IOException
- 如果在创建输出流时发生I / O错误。
-
available
protected abstract int available() throws IOException
返回可以在不阻塞的情况下从此套接字读取的字节数。- 结果
- 无阻塞地从该套接字读取的字节数。
- 异常
-
IOException
- 如果在确定可用字节数时发生I / O错误。
-
close
protected abstract void close() throws IOException
关闭此套接字。- 异常
-
IOException
- 如果关闭此套接字时发生I / O错误。
-
shutdownInput
protected void shutdownInput() throws IOException
将此套接字的输入流放在“流结束”。 发送到此套接字的任何数据都会被确认,然后以静默方式丢弃。 如果在套接字上调用此方法后从套接字输入流中读取,则流的available
方法将返回0,其read
方法将返回-1
(流结束)。- 异常
-
IOException
- 如果在关闭此套接字时发生I / O错误。 - 从以下版本开始:
- 1.3
- 另请参见:
-
Socket.shutdownOutput()
,Socket.close()
,Socket.setSoLinger(boolean, int)
-
shutdownOutput
protected void shutdownOutput() throws IOException
禁用此套接字的输出流。 对于TCP套接字,将发送任何先前写入的数据,然后发送TCP的正常连接终止序列。 如果在套接字上调用shutdownOutput()之后写入套接字输出流,则流将抛出IOException。- 异常
-
IOException
- 如果在关闭此套接字时发生I / O错误。 - 从以下版本开始:
- 1.3
- 另请参见:
-
Socket.shutdownInput()
,Socket.close()
,Socket.setSoLinger(boolean, int)
-
getFileDescriptor
protected FileDescriptor getFileDescriptor()
返回此套接字的fd
字段的值。- 结果
-
此套接字的值
fd
字段。 - 另请参见:
-
fd
-
getInetAddress
protected InetAddress getInetAddress()
返回此套接字的address
字段的值。- 结果
-
此套接字的值
address
字段。 - 另请参见:
-
address
-
getPort
protected int getPort()
返回此套接字的port
字段的值。- 结果
-
此套接字的值
port
字段。 - 另请参见:
-
port
-
supportsUrgentData
protected boolean supportsUrgentData()
返回此SocketImpl是否支持发送紧急数据。 默认情况下,返回false,除非在子类中重写该方法- 结果
- 如果支持紧急数据,则为true
- 从以下版本开始:
- 1.4
- 另请参见:
-
address
-
sendUrgentData
protected abstract void sendUrgentData(int data) throws IOException
在套接字上发送一个字节的紧急数据。 要发送的字节是参数的低8位- 参数
-
data
- 要发送的数据字节 - 异常
-
IOException
- 如果发送数据时出错。 - 从以下版本开始:
- 1.4
-
getLocalPort
protected int getLocalPort()
返回此套接字的localport
字段的值。- 结果
-
此套接字的值
localport
字段。 - 另请参见:
-
localport
-
setPerformancePreferences
protected void setPerformancePreferences(int connectionTime, int latency, int bandwidth)
设置此套接字的性能首选项。套接字默认使用TCP / IP协议。 一些实现可以提供具有与TCP / IP不同的性能特征的替代协议。 该方法允许应用程序表达自己的偏好,以便在实现从可用协议中选择时如何进行这些权衡。
性能首选项由三个整数描述,其值表示短连接时间,低延迟和高带宽的相对重要性。 整数的绝对值是无关紧要的; 为了选择协议,简单地比较值,较大的值表示较强的偏好。 负值表示比正值低的优先级。 例如,如果应用程序优先考虑低延迟和高带宽的短连接时间,那么它可以使用值
(1, 0, 0)
调用此方法。 如果应用程序更喜欢低延迟以上的高带宽,并且在短连接时间之上具有低延迟,那么它可以使用值(0, 1, 2)
调用此方法。 默认情况下,此方法不执行任何操作,除非它在子类中被重写。- 参数
-
connectionTime
-int
表示短连接时间的相对重要性 -
latency
- 表达低延迟的相对重要性的int
-
bandwidth
- 表达高带宽的相对重要性的int
- 从以下版本开始:
- 1.5
-
setOption
protected <T> void setOption(SocketOption<T> name, T value) throws IOException
被调用来设置套接字选项。- 参数类型
-
T
- 套接字选项值的类型 - 参数
-
name
- 套接字选项 -
value
- 套接字选项的值。 值null
可能对某些选项有效。 - 异常
-
UnsupportedOperationException
- 如果SocketImpl不支持该选项 -
IOException
- 如果发生I / O错误,或者套接字已关闭。 - 从以下版本开始:
- 9
-
getOption
protected <T> T getOption(SocketOption<T> name) throws IOException
被叫获得套接字选项。- 参数类型
-
T
- 套接字选项值的类型 - 参数
-
name
- 套接字选项 - 结果
- 命名选项的值
- 异常
-
UnsupportedOperationException
- 如果SocketImpl不支持该选项。 -
IOException
- 如果发生I / O错误,或者套接字已关闭。 - 从以下版本开始:
- 9
-
supportedOptions
protected Set<SocketOption<?>> supportedOptions()
返回此impl支持的一组SocketOptions以及此impl的套接字(Socket或ServerSocket)- 结果
- 一组SocketOptions
- 从以下版本开始:
- 9
-
-