所有类


javax.net.ssl
类 SSLServerSocket

java.lang.Object
  继承者 java.net.ServerSocket
      继承者 javax.net.ssl.SSLServerSocket

public abstract class SSLServerSocket
   
   
   
   
   
extends ServerSocket

此类扩展了 ServerSocket 并且提供使用像 Secure Sockets Layer (SSL) 或 Transport Layer Security (TLS) 协议的安全套接字。

此类的实例通常使用 SSLServerSocketFactory 来创建。SSLServerSocket 的主要功能是通过接受连接来创建 SSLSocket

SSLServerSocket 包含了一些状态数据,这些数据在创建套接字时由 SSLSocket 继承。它们包括启用密码套件和协议、客户端身份验证是否必需的,以及创建的套接字应该以客户端还是服务器模式开始联络。SSLSocket 继承的状态可以通过调用适当的方法重写。

从以下版本开始:
1.4
另请参见:
ServerSocket, SSLSocket

构造方法摘要
protected SSLServerSocket()
          仅供子类使用。
protected SSLServerSocket(int port)
          仅供子类使用。
protected SSLServerSocket(int port, int backlog)
          仅供子类使用。
protected SSLServerSocket(int port, int backlog, InetAddress address)
          仅供子类使用。
 
方法摘要
abstract  String[] getEnabledCipherSuites()
          返回供当前新接受启用的密码套件的列表。
abstract  String[] getEnabledProtocols()
          返回当前新接受的连接启用的协议的名称。
abstract  boolean getEnableSessionCreation()
          如果新 SSL 会话可以通过此服务器套接字创建的套接字建立,则返回 true。
abstract  boolean getNeedClientAuth()
          如果新 accept 的服务器模式的 SSLSocket 要求 客户端身份验证,则返回 true。
abstract  String[] getSupportedCipherSuites()
          返回可以在 SSL 连接上启用的密码套件的名称。
abstract  String[] getSupportedProtocols()
          返回可以启用的协议的名称。
abstract  boolean getUseClientMode()
          如果接受的连接处于 SSL 客户端模式,则返回 true。
abstract  boolean getWantClientAuth()
          如果新接受的服务器模式的连接请求 客户端身份验证,则返回 true。
abstract  void setEnabledCipherSuites(String[] suites)
          把密码套件设置为启用的以供接受的连接使用。
abstract  void setEnabledProtocols(String[] protocols)
          控制哪个特定的协议允许接受的连接使用。
abstract  void setEnableSessionCreation(boolean flag)
          控制新 SSL 会话是否可以通过此服务器套接字创建的套接字建立。
abstract  void setNeedClientAuth(boolean need)
          控制 accept 服务器模式的 SSLSockets 是否将在开始时配置为要求 客户端身份验证。
abstract  void setUseClientMode(boolean mode)
          控制接受的连接是以(默认的)SSL 服务器模式还是在 SSL 客户端模式工作。
abstract  void setWantClientAuth(boolean want)
          控制 accept 服务器模式的 SSLSockets 是否将在开始时配置为请求 客户端身份验证。
 
从类 java.net.ServerSocket 继承的方法
accept, bind, bind, close, getChannel, getInetAddress, getLocalPort, getLocalSocketAddress, getReceiveBufferSize, getReuseAddress, getSoTimeout, implAccept, isBound, isClosed, setPerformancePreferences, setReceiveBufferSize, setReuseAddress, setSocketFactory, setSoTimeout, toString
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

构造方法详细信息

SSLServerSocket

protected SSLServerSocket()
                   throws IOException
仅供子类使用。

使用默认的身份验证上下文创建未绑定的 TCP 服务器套接字。

抛出:
IOException - 如果创建套接字时发生 I/O 错误

SSLServerSocket

protected SSLServerSocket(int port)
                   throws IOException
仅供子类使用。

使用默认的身份验证上下文在端口上创建 TCP 服务器套接字。连接的 backlog 默认为在系统拒绝新的连接请求前能有五十个连接排队。

参数:
port - 侦听的端口
抛出:
IOException - 当创建套接字时出现 I/O 错误

SSLServerSocket

protected SSLServerSocket(int port,
                          int backlog)
                   throws IOException
仅供子类使用。

使用默认的身份验证上下文和指定的连接 backlog 在端口上创建 TCP 服务器套接字。

参数:
port - 侦听的端口号
backlog - 在系统应该开始拒绝新的请求前可以挂起的连接数
抛出:
IOException - 如果创建套接字时出现 I/O 错误

SSLServerSocket

protected SSLServerSocket(int port,
                          int backlog,
                          InetAddress address)
                   throws IOException
仅供子类使用。

使用默认的身份验证上下文、指定的连接 backlog 和指定的网络接口在端口上创建 TCP 服务器套接字。此构造方法用在多穴主机(像那些用作防火墙或路由器的主机)上以控制通过哪一个接口提供网络服务。

参数:
port - 侦听的端口号
backlog - 在系统应该开始拒绝新的请求前可以挂起的连接数
address - 网络接口的地址,通过此地址接受连接
抛出:
IOException - 如果创建套接字时出现 I/O 错误
方法详细信息

getEnabledCipherSuites

public abstract String[] getEnabledCipherSuites()
返回供当前新接受启用的密码套件的列表。

如果没有显式修改此列表,则系统提供的默认值在所有启用的密码套件中保证为最低的服务质量。

实际上不使用启用的密码套件有多个原因。例如: 服务器套接字可能没有适当的私钥供它使用或者密码套件可能是匿名的,阻止使用客户端身份验证,而服务器套接字已经被告知需要那种身份验证。

返回:
启用的密码套件的数组
另请参见:
getSupportedCipherSuites(), setEnabledCipherSuites(String [])

setEnabledCipherSuites

public abstract void setEnabledCipherSuites(String[] suites)
把密码套件设置为启用的以供接受的连接使用。

密码套件必须已经使用 getSupportedCipherSuites() 作为支持的密码套件被列表。在成功调用此方法之后,仅启用了在 suites 参数中列出的套件以便使用。

需要身份验证信息而这些信息在此 ServerSocket 的身份验证上下文中不可用时,套件在任何情况下都不能使用,即使它们被启用。

accept() 返回的 SSLSocket 继承此设置。

参数:
suites - 要启用的所有密码套件名称
抛出:
IllegalArgumentException - 当一个或多个由参数命名的密码套件不被支持时,或参数为 null 时。
另请参见:
getSupportedCipherSuites(), getEnabledCipherSuites()

getSupportedCipherSuites

public abstract String[] getSupportedCipherSuites()
返回可以在 SSL 连接上启用的密码套件的名称。

通常,因为此列表可能包括无法满足默认服务质量要求的密码套件,所以默认情况下实际启动的是这些密码套件的子集。这种密码套件在专门的应用程序中才能有用。

返回:
密码套件名称的数组
另请参见:
getEnabledCipherSuites(), setEnabledCipherSuites(String [])

getSupportedProtocols

public abstract String[] getSupportedProtocols()
返回可以启用的协议的名称。

返回:
支持的协议名称的数组
另请参见:
getEnabledProtocols(), setEnabledProtocols(String [])

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部