package javax.net.ssl;
import java.io.IOException;
import java.net.InetAddress;
import java.net.ServerSocket;
/**
* The extension of {@code ServerSocket} which provides secure server sockets
* based on protocols like SSL, TLS, or others.
*/
public abstract class SSLServerSocket extends ServerSocket {
/**
* Only to be used by subclasses.
* <p>
* Creates a TCP server socket with the default authentication context.
*
* @throws IOException
* if creating the socket fails.
*/
protected SSLServerSocket() throws IOException {
super();
}
/**
* Only to be used by subclasses.
* <p>
* Creates a TCP server socket on the specified port with the default
* authentication context. The connection's default backlog size is 50
* connections.
* @param port
* the port to listen on.
* @throws IOException
* if creating the socket fails.
*/
protected SSLServerSocket(int port) throws IOException {
super(port);
}
/**
* Only to be used by subclasses.
* <p>
* Creates a TCP server socket on the specified port using the specified
* backlog and the default authentication context.
*
* @param port
* the port to listen on.
* @param backlog
* the number of pending connections to queue.
* @throws IOException
* if creating the socket fails.
*/
protected SSLServerSocket(int port, int backlog) throws IOException {
super(port, backlog);
}
/**
* Only to be used by subclasses.
* <p>
* Creates a TCP server socket on the specified port, using the specified
* backlog, listening on the specified interface, and using the default
* authentication context.
*
* @param port
* the port the listen on.
* @param backlog
* the number of pending connections to queue.
* @param address
* the address of the interface to accept connections on.
* @throws IOException
* if creating the socket fails.
*/
protected SSLServerSocket(int port, int backlog, InetAddress address) throws IOException {
super(port, backlog, address);
}
/**
* Returns the names of the enabled cipher suites to be used for new
* connections.
*
* @return the names of the enabled cipher suites to be used for new
* connections.
*/
public abstract String[] getEnabledCipherSuites();
/**
* Sets the names of the cipher suites to be enabled for new connections.
* Only cipher suites returned by {@link #getSupportedCipherSuites()} are
* allowed.
*
* @param suites
* the names of the to be enabled cipher suites.
* @throws IllegalArgumentException
* if one of the cipher suite names is not supported.
*/
public abstract void setEnabledCipherSuites(String[] suites);
/**
* Returns the names of the supported cipher suites.
*
* @return the names of the supported cipher suites.
*/
public abstract String[] getSupportedCipherSuites();
/**
* Returns the names of the supported protocols.
*
* @return the names of the supported protocols.
*/
public abstract String[] getSupportedProtocols();
/**
* Returns the names of the enabled protocols to be used for new
* connections.
*
* @return the names of the enabled protocols to be used for new
* connections.
*/
public abstract String[] getEnabledProtocols();
/**
* Sets the names of the protocols to be enabled for new connections. Only
* protocols returned by {@link #getSupportedProtocols()} are allowed.
*
* @param protocols
* the names of the to be enabled protocols.
* @throws IllegalArgumentException
* if one of the protocols is not supported.
*/
public abstract void setEnabledProtocols(String[] protocols);
/**
* Sets whether server-mode connections will be configured to require client
* authentication. The client authentication is one of the following:
* <ul>
* <li>authentication required</li>
* <li>authentication requested</li>
* <li>no authentication needed</li>
* </ul>
* This method overrides the setting of {@link #setWantClientAuth(boolean)}.
*
* @param need
* {@code true} if client authentication is required,
* {@code false} if no authentication is needed.
*/
public abstract void setNeedClientAuth(boolean need);
/**
* Returns whether server-mode connections will be configured to require
* client authentication.
*
* @return {@code true} if client authentication is required, {@code false}
* if no client authentication is needed.
*/
public abstract boolean getNeedClientAuth();
/**
* Sets whether server-mode connections will be configured to request client
* authentication. The client authentication is one of the following:
* <ul>
* <li>authentication required</li>
* <li>authentication requested</li>
* <li>no authentication needed</li>
* </ul>
* This method overrides the setting of {@link #setNeedClientAuth(boolean)}.
*
* @param want
* {@code true} if client authentication should be requested,
* {@code false} if no authentication is needed.
*/
public abstract void setWantClientAuth(boolean want);
/**
* Returns whether server-mode connections will be configured to request
* client authentication.
*
* @return {@code true} is client authentication will be requested,
* {@code false} if no client authentication is needed.
*/
public abstract boolean getWantClientAuth();
/**
* Sets whether new connections should act in client mode when handshaking.
*
* @param mode
* {@code true} if new connections should act in client mode,
* {@code false} if not.
*/
public abstract void setUseClientMode(boolean mode);
/**
* Returns whether new connection will act in client mode when handshaking.
*
* @return {@code true} if new connections will act in client mode when
* handshaking, {@code false} if not.
*/
public abstract boolean getUseClientMode();
/**
* Sets whether new SSL sessions may be established for new connections.
*
* @param flag
* {@code true} if new SSL sessions may be established,
* {@code false} if existing SSL sessions must be reused.
*/
public abstract void setEnableSessionCreation(boolean flag);
/**
* Returns whether new SSL sessions may be established for new connections.
*
* @return {@code true} if new SSL sessions may be established,
* {@code false} if existing SSL sessions must be reused.
*/
public abstract boolean getEnableSessionCreation();
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
SSLServerSocket.rar (1个子文件)
SSLServerSocket.c 7KB
共 1 条
- 1
资源评论
weixin_42653672
- 粉丝: 109
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于51单片机开发板设计的六位密码锁
- course_s5_linux应用程序开发篇.pdf
- course_s4_ALINX_ZYNQ_MPSoC开发平台Linux驱动教程V1.04.pdf
- course_s0_Xilinx开发环境安装教程.pdf
- 多边形框架物体检测20-YOLO(v5至v11)、COCO、CreateML、Paligemma、TFRecord、VOC数据集合集.rar
- course_s1_ALINX_ZYNQ_MPSoC开发平台FPGA教程V1.01.pdf
- course_s3_ALINX_ZYNQ_MPSoC开发平台Linux基础教程V1.05.pdf
- rwer456456567567
- AXU2CGB-E开发板用户手册.pdf
- 数据库设计与关系理论-C.J.+Date.epub
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功