java.lang.Object
java.net.SocketImpl
- 所有已实现的接口:
SocketOptions
抽象类
SocketImpl 是所有实际实现套接字的类的公共超类。它用于创建客户端和服务套接字。
- 自从:
- 1.0
-
字段摘要
字段修饰符和类型Field描述protected InetAddress此套接字的远程端的 IP 地址。protected FileDescriptor此套接字的文件描述符对象。protected int此套接字连接到的本地端口号。protected int此套接字连接到的远程主机上的端口号。在接口 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 -
构造方法总结
构造方法 -
方法总结
修饰符和类型方法描述protected abstract voidaccept(SocketImpl s) 接受连接。protected abstract int返回可以无阻塞地从此套接字读取的字节数。protected abstract voidbind(InetAddress host, int port) 将此套接字绑定到指定的本地 IP 地址和端口号。protected abstract voidclose()关闭这个套接字。protected abstract void将此套接字连接到指定主机上的指定端口。protected abstract voidconnect(InetAddress address, int port) 将此套接字连接到指定主机上的指定端口号。protected abstract voidconnect(SocketAddress address, int timeout) 将此套接字连接到指定主机上的指定端口号。protected abstract voidcreate(boolean stream) 创建流或数据报套接字。protected FileDescriptor返回此套接字的fd字段的值。protected InetAddress返回此套接字的address字段的值。protected abstract InputStream返回此套接字的输入流。protected int返回此套接字的localport字段的值。protected <T> TgetOption(SocketOption<T> name) 调用以获取套接字选项。protected abstract OutputStream返回此套接字的输出流。protected intgetPort()返回此套接字的port字段的值。protected abstract voidlisten(int backlog) 将传入连接指示(连接请求)的最大队列长度设置为count参数。protected abstract voidsendUrgentData(int data) 在套接字上发送一个字节的紧急数据。protected <T> voidsetOption(SocketOption<T> name, T value) 调用以设置套接字选项。protected voidsetPerformancePreferences(int connectionTime, int latency, int bandwidth) 为此套接字设置性能首选项。protected void将此套接字的输入流置于“流的结尾”。protected void禁用此套接字的输出流。protected Set<SocketOption<?>>返回此 impl 和此 impl 的套接字(Socket 或 ServerSocket)支持的一组 SocketOptionsprotected boolean返回此 SocketImpl 是否支持发送紧急数据。toString()将此套接字的地址和端口作为String返回。在类 java.lang.Object 中声明的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait在接口 java.net.SocketOptions 中声明的方法
getOption, setOption
-
字段详细信息
-
fd
此套接字的文件描述符对象。 -
address
此套接字的远程端的 IP 地址。 -
port
protected int port此套接字连接到的远程主机上的端口号。 -
localport
protected int localport此套接字连接到的本地端口号。
-
-
构造方法详细信息
-
SocketImpl
public SocketImpl()初始化此类的新实例
-
-
方法详情
-
create
创建流或数据报套接字。- 参数:
stream- 如果是true,则创建一个流套接字;否则,创建数据报套接字。- 抛出:
IOException- 如果在创建套接字时发生 I/O 错误。
-
connect
将此套接字连接到指定主机上的指定端口。- 参数:
host- 远程主机的名称。port- 端口号。- 抛出:
IOException- 如果在连接到远程主机时发生 I/O 错误。
-
connect
将此套接字连接到指定主机上的指定端口号。- 参数:
address- 远程主机的 IP 地址。port- 端口号。- 抛出:
IOException- 如果在尝试连接时发生 I/O 错误。
-
connect
将此套接字连接到指定主机上的指定端口号。零超时被解释为无限超时。然后连接将阻塞,直到建立或发生错误。- 参数:
address- 远程主机的套接字地址。timeout- 超时值,以毫秒为单位,或零表示没有超时。- 抛出:
IOException- 如果在尝试连接时发生 I/O 错误。- 自从:
- 1.4
-
bind
将此套接字绑定到指定的本地 IP 地址和端口号。- 参数:
host- 属于本地接口的 IP 地址。port- 端口号。- 抛出:
IOException- 如果绑定此套接字时发生 I/O 错误。
-
listen
将传入连接指示(连接请求)的最大队列长度设置为count参数。如果连接指示在队列已满时到达,则拒绝连接。- 参数:
backlog- 队列的最大长度。- 抛出:
IOException- 如果在创建队列时发生 I/O 错误。
-
accept
接受连接。- 参数:
s- 接受的连接。- 抛出:
IOException- 如果在接受连接时发生 I/O 错误。
-
getInputStream
返回此套接字的输入流。- 返回:
- 从此套接字读取的流。
- 抛出:
IOException- 如果在创建输入流时发生 I/O 错误。
-
getOutputStream
返回此套接字的输出流。- 返回:
- 用于写入此套接字的输出流。
- 抛出:
IOException- 如果在创建输出流时发生 I/O 错误。
-
available
返回可以无阻塞地从此套接字读取的字节数。- 返回:
- 可以从这个套接字读取而不阻塞的字节数。
- 抛出:
IOException- 如果在确定可用字节数时发生 I/O 错误。
-
close
关闭这个套接字。- 抛出:
IOException- 如果在关闭此套接字时发生 I/O 错误。
-
shutdownInput
将此套接字的输入流置于“流的结尾”。发送到此套接字的任何数据都会被确认,然后被静默丢弃。如果在套接字上调用此方法后从套接字输入流读取数据,则该流的available方法将返回 0,其read方法将返回-1(流结束)。- 抛出:
IOException- 如果在关闭此套接字时发生 I/O 错误。- 自从:
- 1.3
- 参见:
-
shutdownOutput
禁用此套接字的输出流。对于 TCP 套接字,任何先前写入的数据都将在 TCP 的正常连接终止序列之后发送。如果在套接字上调用 shutdownOutput() 后写入套接字输出流,则该流将抛出 IOException。- 抛出:
IOException- 如果在关闭此套接字时发生 I/O 错误。- 自从:
- 1.3
- 参见:
-
getFileDescriptor
返回此套接字的fd字段的值。- 返回:
-
此套接字的
fd字段的值。 - 参见:
-
getInetAddress
返回此套接字的address字段的值。- 返回:
-
此套接字的
address字段的值。 - 参见:
-
getPort
protected int getPort()返回此套接字的port字段的值。- 返回:
-
此套接字的
port字段的值。 - 参见:
-
supportsUrgentData
protected boolean supportsUrgentData()返回此 SocketImpl 是否支持发送紧急数据。默认情况下,返回 false,除非该方法在子类中被重写- 返回:
- 如果支持紧急数据则为真
- 自从:
- 1.4
- 参见:
-
sendUrgentData
在套接字上发送一个字节的紧急数据。要发送的字节是参数的低八位- 参数:
data- 要发送的数据字节- 抛出:
IOException- 如果发送数据时出错。- 自从:
- 1.4
-
getLocalPort
protected int getLocalPort()返回此套接字的localport字段的值。- 返回:
-
此套接字的
localport字段的值。 - 参见:
-
toString
将此套接字的地址和端口作为String返回。 -
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
调用以设置套接字选项。- 实现要求:
-
此方法的默认实现首先检查给定的套接字选项
name不为空,然后抛出UnsupportedOperationException。子类应使用适当的实现覆盖此方法。 - 类型参数:
T- 套接字选项值的类型- 参数:
name- 套接字选项value- 套接字选项的值。null的值可能对某些选项有效。- 抛出:
UnsupportedOperationException- 如果 SocketImpl 不支持该选项IllegalArgumentException- 如果该值对选项无效IOException- 如果发生 I/O 错误,或者套接字已关闭NullPointerException- 如果名字是null- 自从:
- 9
-
getOption
调用以获取套接字选项。- 实现要求:
-
此方法的默认实现首先检查给定的套接字选项
name不为空,然后抛出UnsupportedOperationException。子类应使用适当的实现覆盖此方法。 - 类型参数:
T- 套接字选项值的类型- 参数:
name- 套接字选项- 返回:
- 命名选项的值
- 抛出:
UnsupportedOperationException- 如果 SocketImpl 不支持该选项IOException- 如果发生 I/O 错误,或者套接字已关闭NullPointerException- 如果名字是null- 自从:
- 9
-
supportedOptions
返回此 impl 和此 impl 的套接字(Socket 或 ServerSocket)支持的一组 SocketOptions- 实现要求:
- 此方法的默认实现返回一个空集。子类应使用适当的实现重写此方法。
- 返回:
- 一组 SocketOptions
- 自从:
- 9
-