NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
ssl_server类 参考final

SSL/TLS服务器类 更多...

#include <tcp_server.hpp>

类 ssl_server 继承关系图:
[图例]

Public 成员函数

 ssl_server (ports port, size_t worker_count=thread_pool::max_thread_threshhold())
 构造函数
bool load_certificate (const string &cert_file, const string &key_file)
 加载证书和私钥
void set_ssl_context (ssl_context ctx)
 设置SSL上下文
NEFORCE_NODISCARD ssl_contextget_ssl_context () noexcept
 获取SSL上下文
NEFORCE_NODISCARD const ssl_contextget_ssl_context () const noexcept
 获取常量SSL上下文
bool start (int backlog=SOMAXCONN) noexcept override
 启动SSL服务器
Public 成员函数 继承自 tcp_server_base
 tcp_server_base (ports port, size_t worker_count=thread_pool::max_thread_threshhold())
 构造函数
virtual ~tcp_server_base ()
 析构函数
bool set_client_handler (client_handler_t handler)
 设置客户端处理器
bool set_exception_handler (exception_handler_t handler)
 设置异常处理器
void stop ()
 停止服务器
NEFORCE_NODISCARD bool is_running () const noexcept
 检查服务器是否运行中
NEFORCE_NODISCARD ports port () const noexcept
 获取监听端口

额外继承的成员函数

Public 类型 继承自 tcp_server_base
using client_handler_t = function<void(tcp_socket)>
 客户端处理器类型
using exception_handler_t = function<void(const exception&)>
 异常处理器类型
Protected 成员函数 继承自 tcp_server_base
void accept_loop ()
 接受连接的主循环
virtual void handle_client (tcp_socket client)
 处理单个客户端连接
Protected 属性 继承自 tcp_server_base
unique_ptr< tcp_acceptoracceptor_
 TCP接受器
ports port_
 监听端口
atomic< bool > running_ {false}
 运行标志
vector< threadworker_threads_
 工作线程列表
thread_pool client_pool_
 客户端处理线程池
client_handler_t client_handler_
 客户端处理器
exception_handler_t exception_handler_
 异常处理器

详细描述

SSL/TLS服务器类

实现SSL/TLS加密的TCP服务器,使用ssl_acceptor接受连接。

使用示例:

// 创建SSL服务器
ssl_server server(443, 10);
// 加载证书
if (!server.load_certificate("server.crt", "server.key")) {
println("Failed to load certificate");
}
// 设置客户端处理器
server.set_client_handler([](tcp_socket client) {
auto& ssl_client = static_cast<ssl_socket&>(client);
// 处理加密连接...
});
// 启动服务器
server.start();
SSL/TLS客户端类
ssl_server(ports port, size_t worker_count=thread_pool::max_thread_threshhold())
构造函数
SSL/TLS安全Socket类
TCP Socket类
void println(Args &&... args)
打印多个值并换行

在文件 tcp_server.hpp211 行定义.

构造及析构函数说明

◆ ssl_server()

ssl_server::ssl_server ( ports port,
size_t worker_count = thread_pool::max_thread_threshhold() )
explicit

构造函数

参数
port监听端口
worker_count工作线程数

引用了 tcp_server_base::port().

成员函数说明

◆ get_ssl_context() [1/2]

NEFORCE_NODISCARD const ssl_context & ssl_server::get_ssl_context ( ) const
inlinenoexcept

获取常量SSL上下文

返回
常量SSL上下文引用

在文件 tcp_server.hpp252 行定义.

◆ get_ssl_context() [2/2]

NEFORCE_NODISCARD ssl_context & ssl_server::get_ssl_context ( )
inlinenoexcept

获取SSL上下文

返回
SSL上下文引用

在文件 tcp_server.hpp246 行定义.

◆ load_certificate()

bool ssl_server::load_certificate ( const string & cert_file,
const string & key_file )

加载证书和私钥

参数
cert_file证书文件路径
key_file私钥文件路径
返回
加载成功返回true

◆ set_ssl_context()

void ssl_server::set_ssl_context ( ssl_context ctx)

设置SSL上下文

参数
ctxSSL上下文
异常
ssl_exception服务器运行时或上下文无效时抛出

◆ start()

bool ssl_server::start ( int backlog = SOMAXCONN)
overridevirtualnoexcept

启动SSL服务器

参数
backlog连接队列大小
返回
启动成功返回true

需要先加载证书或设置SSL上下文。

重载 tcp_server_base .


该类的文档由以下文件生成: