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, waitgetOption, setOptionprotected 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.