java.lang.Object
|---java.net.SocketImpl
public abstract class SocketImpl
extends Object
implements SocketOptions
抽象类 SocketImpl 是所有实际实现套接字的类的公共超类。 它用于创建客户端和服务器套接字。
“普通”套接字完全按照描述实现这些方法,而不试图通过防火墙或代理。
修饰符和类型 | 字段 | 描述 |
---|---|---|
protected InetAddress | address | 此套接字的远程端的 IP 地址。 |
protected FileDescriptor | fd | 此套接字的文件描述符对象。 |
protected int | localport | 此套接字连接到的本地端口号。 |
protected int | port | 此套接字连接到的远程主机上的端口号。 |
从接口 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_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() | 返回此套接字的地址字段的值。 |
protected abstract InputStream | getInputStream() | 返回此套接字的输入流。 |
protected int | getLocalPort() | 返回此套接字的 localport 字段的值。 |
protected abstract OutputStream | getOutputStream() | 返回此套接字的输出流。 |
protected int | getPort() | 返回此套接字的端口字段的值。 |
protected abstract void | listen(int backlog) | 将传入连接指示(连接请求)的最大队列长度设置为 count 参数。 |
protected abstract void | sendUrgentData(int data) | 在套接字上发送一个字节的紧急数据。 |
protected void | setPerformancePreferences(int connectionTime, int latency, int bandwidth) | 设置此套接字的性能首选项。 |
protected void | shutdownInput() | 将此套接字的输入流放在“流的末尾”。 |
protected void | shutdownOutput() | 禁用此套接字的输出流。 |
protected boolean | supportsUrgentData() | 返回此 SocketImpl 是否支持发送紧急数据。 |
String | toString() | 将此套接字的地址和端口作为字符串返回。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
从接口 java.net.SocketOptions 继承的方法 |
---|
getOption, setOption |
protected InetAddress address
此套接字的远程端的 IP 地址。
protected FileDescriptor fd
此套接字的文件描述符对象。
protected int localport
此套接字连接到的本地端口号。
protected int port
此套接字连接到的远程主机上的端口号。
public SocketImpl()
protected abstract void create(boolean stream) throws IOException
创建流或数据报套接字。
参数:
参数名称 | 参数描述 |
---|---|
stream | 如果为true,则创建一个流套接字; 否则,创建一个数据报套接字。 |
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果在创建套接字时发生 I/O 错误。 |
protected abstract void connect(String host, int port) throws IOException
将此套接字连接到指定主机上的指定端口。
参数:
参数名称 | 参数描述 |
---|---|
host | 远程主机的名称。 |
port | 端口号。 |
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果连接到远程主机时发生 I/O 错误。 |
protected abstract void connect(InetAddress address, int port) throws IOException
将此套接字连接到指定主机上的指定端口号。
参数:
参数名称 | 参数描述 |
---|---|
address | 远程主机的 IP 地址。 |
port | 端口号。 |
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果尝试连接时发生 I/O 错误。 |
protected abstract void connect(SocketAddress address, int timeout) throws IOException
将此套接字连接到指定主机上的指定端口号。 超时为零被解释为无限超时。 然后连接将阻塞,直到建立或发生错误。
参数:
参数名称 | 参数描述 |
---|---|
address | 远程主机的 Socket 地址。 |
timeout | 超时值,以毫秒为单位,或者为零表示没有超时。 |
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果尝试连接时发生 I/O 错误。 |
protected abstract void bind(InetAddress host, int port) throws IOException
将此套接字绑定到指定的本地 IP 地址和端口号。
参数:
参数名称 | 参数描述 |
---|---|
host | 属于本地接口的 IP 地址。 |
port | 端口号。 |
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果绑定此套接字时发生 I/O 错误。 |
protected abstract void listen(int backlog) throws IOException
将传入连接指示(连接请求)的最大队列长度设置为 count 参数。 如果队列已满时连接指示到达,则拒绝连接。
参数:
参数名称 | 参数描述 |
---|---|
backlog | 队列的最大长度。 |
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果在创建队列时发生 I/O 错误。 |
protected abstract void accept(SocketImpl s) throws IOException
接受连接。
参数:
参数名称 | 参数描述 |
---|---|
s | 接受的连接。 |
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果在接受连接时发生 I/O 错误。 |
protected abstract InputStream getInputStream() throws IOException
返回此套接字的输入流。
返回:
用于从此套接字读取的流。
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果在创建输入流时发生 I/O 错误。 |
protected abstract OutputStream getOutputStream() throws IOException
返回此套接字的输出流。
返回:
用于写入此套接字的输出流。
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果在创建输出流时发生 I/O 错误。 |
protected abstract int available() throws IOException
返回可以不阻塞地从此套接字读取的字节数。
返回:
可以不阻塞地从此套接字读取的字节数。
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果在确定可用字节数时发生 I/O 错误。 |
protected abstract void close() throws IOException
关闭此套接字。
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果关闭此套接字时发生 I/O 错误。 |
protected void shutdownInput() throws IOException
将此套接字的输入流放在“流的末尾”。 发送到此套接字的任何数据都会得到确认,然后被静默丢弃。 如果在套接字上调用此方法后从套接字输入流中读取,则流的可用方法将返回 0,其读取方法将返回 -1(流结束)。
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果关闭此套接字时发生 I/O 错误。 |
protected void shutdownOutput() throws IOException
禁用此套接字的输出流。 对于 TCP 套接字,任何先前写入的数据都将按照 TCP 的正常连接终止顺序发送。 如果在套接字上调用 shutdownOutput() 后写入套接字输出流,则该流将引发 IOException。
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果关闭此套接字时发生 I/O 错误。 |
protected FileDescriptor getFileDescriptor()
返回此套接字的 fd 字段的值。
返回:
此套接字的 fd 字段的值。
protected InetAddress getInetAddress()
返回此套接字的地址字段的值。
返回:
此套接字的地址字段的值。
protected int getPort()
返回此套接字的端口字段的值。
返回:
此套接字的端口字段的值。
protected boolean supportsUrgentData()
返回此 SocketImpl 是否支持发送紧急数据。 默认情况下,除非在子类中重写该方法,否则返回 false
返回:
如果支持紧急数据,则为true
protected abstract void sendUrgentData(int data) throws IOException
在套接字上发送一个字节的紧急数据。 要发送的字节是参数的低八位
参数:
参数名称 | 参数描述 |
---|---|
data | 要发送的数据字节 |
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果发送数据时出错。 |
protected int getLocalPort()
返回此套接字的 localport 字段的值。
返回:
此套接字的 localport 字段的值。
public String toString()
将此套接字的地址和端口作为字符串返回。
覆盖:
类 Object 中的 toString
返回:
此套接字的字符串表示形式。
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 |
备案信息: 粤ICP备15087711号-2
Copyright © 2008-2024 啊嘎哇在线工具箱 All Rights.
本站所有资料来源于网络,版权归原作者所有,仅作学习交流使用,如不慎侵犯了您的权利,请联系我们。