|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.net
类 ServerSocket
java.lang.Object java.net.ServerSocket
- 直接已知子类:
- SSLServerSocket
-
public class ServerSocket
- extends Object
此类实现服务器套接字。服务器套接字等待请求通过网络传入。它基于该请求执行某些操作,然后可能向请求者返回结果。
服务器套接字的实际工作由 SocketImpl
类的实例执行。应用程序可以更改创建套接字实现的套接字工厂来配置它自身,从而创建适合本地防火墙的套接字。
- 从以下版本开始:
- JDK1.0
- 另请参见:
-
SocketImpl
,setSocketFactory(java.net.SocketImplFactory)
,ServerSocketChannel
构造方法摘要 | |
---|---|
ServerSocket() 创建非绑定服务器套接字。 |
|
ServerSocket(int port) 创建绑定到特定端口的服务器套接字。 |
|
ServerSocket(int port, int backlog) 利用指定的 backlog 创建服务器套接字并将其绑定到指定的本地端口号。 |
|
ServerSocket(int port, int backlog, InetAddress bindAddr) 使用指定的端口、侦听 backlog 和要绑定到的本地 IP 地址创建服务器。 |
方法摘要 | |
---|---|
Socket |
accept() 侦听并接受到此套接字的连接。 |
void |
bind(SocketAddress endpoint) 将 ServerSocket 绑定到特定地址(IP 地址和端口号)。 |
void |
bind(SocketAddress endpoint, int backlog) 将 ServerSocket 绑定到特定地址(IP 地址和端口号)。 |
void |
close() 关闭此套接字。 |
ServerSocketChannel |
getChannel() 返回与此套接字关联的惟一 ServerSocketChannel 对象(如果有)。 |
InetAddress |
getInetAddress() 返回此服务器套接字的本地地址。 |
int |
getLocalPort() 返回此套接字在其上侦听的端口。 |
SocketAddress |
getLocalSocketAddress() 返回此套接字绑定的端点的地址,如果尚未绑定则返回 null 。 |
int |
getReceiveBufferSize() 获取此 ServerSocket 的 SO_RCVBUF 选项的值,该值是将用于从此 ServerSocket 接受的套接字的建议缓冲区大小。 |
boolean |
getReuseAddress() 测试是否启用 SO_REUSEADDR。 |
int |
getSoTimeout() 重新恢复 SO_TIMEOUT 的设置。 |
protected void |
implAccept(Socket s) ServerSocket 的子类使用此方法重写 accept() 以返回它们自己的套接字子类。 |
boolean |
isBound() 返回 ServerSocket 的绑定状态。 |
boolean |
isClosed() 返回 ServerSocket 的关闭状态。 |
void |
setPerformancePreferences(int connectionTime, int latency, int bandwidth) 设置此 ServerSocket 的性能偏好 (performance preferences)。 |
void |
setReceiveBufferSize(int size) 为从此 ServerSocket 接受的套接字的 SO_RCVBUF 选项设置默认建议值。 |
void |
setReuseAddress(boolean on) 启用/禁用 SO_REUSEADDR 套接字选项。 |
static void |
setSocketFactory(SocketImplFactory fac) 为应用程序设置服务器套接字实现工厂。 |
void |
setSoTimeout(int timeout) 启用/禁用带有指定超时值的 SO_TIMEOUT,以毫秒为单位。 |
String |
toString() 作为 String 返回此套接字的实现地址和实现端口。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
构造方法详细信息 |
---|
ServerSocket
public ServerSocket() throws IOException
-
创建非绑定服务器套接字。
- 抛出:
-
IOException
- 如果打开套接字时发生 IO 错误。
ServerSocket
public ServerSocket(int port) throws IOException
-
创建绑定到特定端口的服务器套接字。端口
0
在所有空闲端口上创建套接字。输入连接指示(对连接的请求)的最大队列长度被设置为
50
。如果队列满时收到连接指示,则拒绝该连接。如果应用程序已指定服务器套接字工厂,则调用该工厂的
createSocketImpl
方法来创建实际套接字实现。否则创建“普通”套接字。如果存在安全管理器,则首先使用
port
参数作为参数调用其checkListen
方法,以确保允许该操作。这可能会导致 SecurityException 异常。- 参数:
-
port
- 端口号;或者为0
,表示使用任何空闲端口。 - 抛出:
-
IOException
- 如果打开套接字时发生 I/O 错误。 -
SecurityException
- 如果安全管理器存在并且其checkListen
方法不允许进行该操作。 - 另请参见:
-
SocketImpl
,SocketImplFactory.createSocketImpl()
,setSocketFactory(java.net.SocketImplFactory)
,SecurityManager.checkListen(int)
ServerSocket
public ServerSocket(int port, int backlog) throws IOException
-
利用指定的 backlog 创建服务器套接字并将其绑定到指定的本地端口号。端口号
0
在所有空闲端口上创建套接字。输入连接指示(对连接的请求)的最大队列长度被设置为
backlog
参数。如果队列满时收到连接指示,则拒绝该连接。如果应用程序已指定服务器套接字工厂,则调用该工厂的
createSocketImpl
方法来创建实际套接字实现。否则创建“普通”套接字。如果存在安全管理器,则首先使用
port
参数作为参数调用其checkListen
方法,以确保允许该操作。这可能会导致 SecurityException 异常。backlog
参数必须是大于 0 的正值。如果传递的值等于或小于 0,则假定为默认值。- 参数:
-
port
- 指定的端口;或者为0
,表示使用任何空闲端口。 -
backlog
- 队列的最大长度。 - 抛出:
-
IOException
- 如果打开套接字时发生 I/O 错误。 -
SecurityException
- 如果安全管理器存在并且其checkListen
方法不允许进行该操作。 - 另请参见:
-
SocketImpl
,SocketImplFactory.createSocketImpl()
,setSocketFactory(java.net.SocketImplFactory)
,SecurityManager.checkListen(int)
ServerSocket
public ServerSocket(int port, int backlog, InetAddress bindAddr) throws IOException
-
使用指定的端口、侦听 backlog 和要绑定到的本地 IP 地址创建服务器。bindAddr 参数可以在 ServerSocket 的多穴主机 (multi-homed host) 上使用,ServerSocket 仅接受对其地址之一的连接请求。如果 bindAddr 为 null,则默认接受任何/所有本地地址上的连接。端口必须在 0 到 65535 之间(包括两者)。
如果存在安全管理器,则此方法使用
port
作为参数调用其checkListen
方法,以确保允许该操作。这可能会导致 SecurityException 异常。backlog
参数必须是大于 0 的正值。如果传递的值等于或小于 0,则假定为默认值。- 参数:
-
port
- 本地 TCP 端口 -
backlog
- 侦听 backlog -
bindAddr
- 要将服务器绑定到的 InetAddress - 抛出:
-
SecurityException
- 如果安全管理器存在并且其checkListen
方法不允许进行该操作。 -
IOException
- 如果打开套接字时发生 I/O 错误。 - 从以下版本开始:
- JDK1.1
- 另请参见:
-
SocketOptions
,SocketImpl
,SecurityManager.checkListen(int)
方法详细信息 |
---|
bind
public void bind(SocketAddress endpoint) throws IOException
-
将
ServerSocket
绑定到特定地址(IP 地址和端口号)。如果地址为
null
,则系统将挑选一个临时端口和一个有效本地地址来绑定套接字。 -
- 参数:
-
endpoint
- 要绑定的 IP 地址和端口号。 - 抛出:
-
IOException
- 如果绑定操作失败或者已经绑定了套接字。 -
SecurityException
- 如果SecurityManager
存在并且其checkListen
方法不允许该操作。 -
IllegalArgumentException
- 如果端点是不受此套接字支持的 SocketAddress 子类 - 从以下版本开始:
- 1.4
bind
public void bind(SocketAddress endpoint, int backlog) throws IOException
-
将
ServerSocket
绑定到特定地址(IP 地址和端口号)。如果地址为
null
,则系统将挑选一个临时端口和一个有效本地地址来绑定套接字。backlog
参数必须是大于 0 的正值。如果传递的值等于或小于 0,则假定为默认值。 -
- 参数:
-
endpoint
- 要绑定的 IP 地址和端口号。 -
backlog
- 侦听 backlog 长度。 - 抛出:
-
IOException
- 如果绑定操作失败或者已经绑定了套接字。 -
SecurityException
- 如果SecurityManager
存在并且其checkListen
方法不允许该操作。 -
IllegalArgumentException
- 如果端点是不受此套接字支持的 SocketAddress 子类 - 从以下版本开始:
- 1.4
getInetAddress
public InetAddress getInetAddress()
- 返回此服务器套接字的本地地址。
-
- 返回:
-
将此套接字绑定到的地址;如果套接字是未绑定的,则返回
null
。
getLocalPort
public int getLocalPort()
- 返回此套接字在其上侦听的端口。
-
- 返回:
- 此套接字侦听的端口号;如果尚未绑定套接字,则返回 -1。