public abstract class SocketImpl extends Object implements SocketOptions
SocketImpl
是实际实现所有类的父类的一个普通插座。它是用来创建客户端和服务器套接字的。
一个“普通”的套接字实现了这些方法完全一样的描述,而不尝试通过防火墙或代理。
Modifier and Type | Field and Description |
---|---|
protected InetAddress |
address
这个套接字的远程端的IP地址。
|
protected FileDescriptor |
fd
此套接字的文件描述符对象。
|
protected int |
localport
此套接字连接的本地端口号。
|
protected int |
port
套接字连接的远程主机上的端口号。
|
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
Constructor and Description |
---|
SocketImpl() |
Modifier and Type | Method and Description |
---|---|
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(InetAddress address, int port)
将此套接字连接到指定主机上的指定端口号。
|
protected abstract void |
connect(SocketAddress address, int timeout)
将此套接字连接到指定主机上的指定端口号。
|
protected abstract void |
connect(String host, int port)
将此套接字连接到指定的主机上的指定端口。
|
protected abstract void |
create(boolean stream)
创建数据流或数据报套接字。
|
protected FileDescriptor |
getFileDescriptor()
返回此套接字的
fd 字段的值。
|
protected InetAddress |
getInetAddress()
返回此套接字的
address 字段的值。
|
protected abstract InputStream |
getInputStream()
返回此套接字的输入流。
|
protected int |
getLocalPort()
返回此套接字的
localport 字段的值。
|
protected abstract OutputStream |
getOutputStream()
返回此套接字的输出流。
|
protected int |
getPort()
返回此套接字的
port 字段的值。
|
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()
作为一个
String 返回套接字的地址和端口。
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getOption, setOption
protected FileDescriptor fd
protected InetAddress address
protected int port
protected int localport
protected abstract void create(boolean stream) throws IOException
stream
-如果
true
,创建流套接字;否则,创建一个数据报套接字。
IOException
-如果在创建套接字时发生I/O错误。
protected abstract void connect(String host, int port) throws IOException
host
-远程主机的名称。
port
-端口号。
IOException
如果I/O错误发生时,连接到远程主机。
protected abstract void connect(InetAddress address, int port) throws IOException
address
-远程主机的IP地址。
port
-端口号。
IOException
如果I/O错误发生时,尝试连接。
protected abstract void connect(SocketAddress address, int timeout) throws IOException
address
-主机的远程套接字地址。
timeout
的超时值,以毫秒为单位,甚至为零,没有超时。
IOException
如果I/O错误发生时,尝试连接。
protected abstract void bind(InetAddress host, int port) throws IOException
host
- IP地址属于一个本地接口。
port
-端口号。
IOException
时发生I/O错误绑定套接字。
protected abstract void listen(int backlog) throws IOException
count
论点。如果一个连接指示到达队列已满时,连接被拒绝。
backlog
-队列的最大长度。
IOException
如果I/O错误发生时创建队列。
protected abstract void accept(SocketImpl s) throws IOException
s
-接受连接。
IOException
如果I/O错误发生时接受连接。
protected abstract InputStream getInputStream() throws IOException
IOException
如果I/O错误发生时创建的输入流。
protected abstract OutputStream getOutputStream() throws IOException
IOException
如果I/O错误发生时创建输出流。
protected abstract int available() throws IOException
IOException
如果I/O错误发生时确定可用的字节数。
protected abstract void close() throws IOException
IOException
如果I/O错误发生时关闭此套接字。
protected void shutdownInput() throws IOException
available
方法将返回0,其
read
方法将返回
-1
(结束流)。
IOException
如果I/O错误发生时关闭套接字。
Socket.shutdownOutput()
,
Socket.close()
,
Socket.setSoLinger(boolean, int)
protected void shutdownOutput() throws IOException
IOException
如果I/O错误发生时关闭套接字。
Socket.shutdownInput()
,
Socket.close()
,
Socket.setSoLinger(boolean, int)
protected FileDescriptor getFileDescriptor()
fd
字段的值。
fd
字段的值。
fd
protected InetAddress getInetAddress()
address
字段的值。
address
字段的值。
address
protected int getPort()
port
字段的值。
port
字段的值。
port
protected boolean supportsUrgentData()
address
protected abstract void sendUrgentData(int data) throws IOException
data
-数据发送的字节
IOException
-如果有错误发送数据。
protected int getLocalPort()
localport
字段的值。
localport
字段的值。
localport
public String toString()
String
返回套接字的地址和端口。
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
表达高带宽的相对重要性
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.