所有类


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。

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部