当前位置 类层次 (JDK) 所有类 (JDK) 所有域和方法 (JDK)

类 java.net.ServerSocket

java.lang.Object
   |
   +----java.net.ServerSocket

public class ServerSocket
extends Object

该类实现服务器 socket。一个服务器 socket 等待从网络上来的请求。 它执行某些基于请求的操作,然后可能返回一个结果给请求者。

服务器 socket 的实际工作是由一个 SocketImpl 类的实例执行的。 一个应用可以改变生成 socket 的 socket 工厂,用以配置自己以生成适合本地防火墙的 socket 。

来自:
JDK1.0
参见:
SocketImpl, setSocketFactory

构造子索引

ServerSocket(int)
在指定的端口生成一个服务器 socket 。
ServerSocket(int, int)
生成一个服务器 socket , 并且把它捆绑到指定的本地端口。
ServerSocket(int, int, InetAddress)
在指定的端口生成一个服务程序,监听要完成的服务和要绑定的 IP 地址。

方法索引

accept()
监听与本 socket 的连接并且接受它。
close()
关闭该 socket 。
getInetAddress()
返回服务器 socket 的本地地址。
getLocalPort()
返回该 socket 正收听的端口 。
getSoTimeout()
提取 SO_TIMEOUT 的设置。
implAccept(Socket)
ServerSocket 类的子类使用该方法来覆盖 accept(),以返回它们自己 socket 的子类。
setSocketFactory(SocketImplFactory)
为应用程序设置服务器 socket 的实现工厂。
setSoTimeout(int)
以毫秒为单位,设置或取消 SO_TIMEOUT 的指定的超时。
toString()
String 的形式返回该 socket 的执行地址和执行端口 。

构造子

ServerSocket
 public ServerSocket(int port) throws IOException
在指定的端口生成一个服务器 socket 。 0 号端口指在任何空闲端口上生成 socket 。

到来的连接指示(连接的请求) 的最大队列长度设置为 50 。 若连接请求到达时队列已满,则拒绝连接。

如果应用程序已指定了服务器 socket 工厂,则该工厂的 createSocketImpl 方法将被调用来生成实际的 socket 应用。 否则将生成一个“无格式”socket。

参数:
port - 端口号码 ,或者为 0 来使用任何释放的端口。
抛出: IOException
如果发生 I/O 错误 ,则打开该 socket 。
参见:
SocketImpl, createSocketImpl, setSocketFactory
ServerSocket
 public ServerSocket(int port,
                     int backlog) throws IOException
生成一个服务器 socket, 并且把它捆绑到指定的本地端口。 0 号端口在任何释放的端口上生成一个 socket 。

到来的连接指示(连接的请求) 的最大队列长度设置为参数 count 。 若连接请求到达时队列已满,则拒绝连接。

如果应用程序已指定了服务器 socket 工厂,则该工厂的 createSocketImpl 方法将被调用来生成实际的 socket 应用。 否则将生成一个“无格式”socket。

参数:
port -指定端口号码 ,或者为 0 来使用任何释放的端口 。
backlog - 队列的最大的长度 。
抛出: IOException
如果发生 I/O 错误 ,则打开该 socket 。
参见:
SocketImpl, createSocketImpl, setSocketFactory
ServerSocket
 public ServerSocket(int port,
                     int backlog,
                     InetAddress bindAddr) throws IOException
在指定的端口生成一个服务程序,监听要完成的服务和要绑定的本地IP 地址。 参数 bindAddr 可以用在多主机的 ServerSocket 上,这些 ServerSocket 将只接受到它一个地址的连接请求。 如果 bindAddr 为 null ,它将缺省地接受对任何/所有本地地址的连接 。端口号必须为 0 和 65535 之间的一个。

参数:
port - 本地的 TCP 端口
backlog - 监听的待办事项
bindAddr - 本地的服务器将捆绑到的 InetAddress 地址
参见:
SocketConstants, SocketOption, SocketImpl, 1

方法

getInetAddress
 public InetAddress getInetAddress()
返回服务器 socket 的本地地址。

返回:
socket 连接的地址 ,若 socket 尚未连接则为 null
getLocalPort
 public int getLocalPort()
返回该 socket 正收听的端口 。

返回:
该 socket 正监听的端口号 。
accept
 public Socket accept() throws IOException
监听与本 socket 的连接并且接受它 。 该方法一直阻塞直到连接成功 。

抛出: IOException
如果在等待连接的时侯发生一 I/O 错误 。
implAccept
 protected final void implAccept(Socket s) throws IOException
ServerSocket 类的子类使用该方法覆盖 accept(),以返回它们自己 socket 的子类。 于是一个 FooServerSocket 通常给该方法传递一个 FooSocket()。 在 implAccept 返回时,FooSocket 将被连接到一个客户机上。

close
 public void close() throws IOException
关闭该 socket 。

抛出: IOException
如果关闭 socket 的时侯发生一 I/O 错误。
setSoTimeout
 public synchronized void setSoTimeout(int timeout) throws SocketException
以毫秒为单位,设置或取消 SO_TIMEOUT 的指定的超时。 使用非零的超时选择项对 ServerSocket 调用 accept() 方法,该调用在这段设定的时间内阻塞。 如果超时得以验证 ,java.io.InterruptedIOException 将被启动 ,即使 ServerSocket 仍有效。 选择项 must 被设置成可以加入封锁操作。 超时必须是 > 0 。 取值为零的超时被解释为无穷大的超时。

getSoTimeout
 public synchronized int getSoTimeout() throws IOException
提取 SO_TIMEOUT 的设置。 返回为 0 表示该选择项是屏蔽的 (如: 超时为无穷大)。

toString
 public String toString()
String 的形式返回该 socket 的执行地址和执行端口 。

返回:
该 socket 的字符串表示 。
覆盖:
Object 中的 toString
setSocketFactory
 public static synchronized void setSocketFactory(SocketImplFactory fac) throws IOException
对应用程序设置服务器 socket 执行工厂。 该工厂只能指定一次。

如果应用程序生成一个新的服务器 socket ,则该 socket 应用工厂的 createSocketImpl 方法将被调用来生成实际的 socket 应用。

参数:
fac - 期望的工厂
抛出: IOException
如果在设置 socket 工厂的时侯发生一个 I/O错误 。
抛出:SocketException
如果工厂已被定义 。
参见:
createSocketImpl

当前位置 类层次 (JDK) 所有类 (JDK) 所有域和方法 (JDK)