|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
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.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 [])