|
NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
|
SSL/TLS客户端类 更多...
#include <tcp_client.hpp>
Public 成员函数 | |
| ssl_client ()=default | |
| 默认构造函数 | |
| ssl_client (ssl_context ctx) | |
| 构造函数(带SSL上下文) | |
| void | set_ssl_context (ssl_context ctx) |
| 设置SSL上下文 | |
| void | set_verify_peer (bool verify) |
| 设置是否验证对等方证书 | |
| void | set_sni_hostname (string hostname) |
| 设置SNI主机名 | |
| bool | load_ca_file (const string &ca_file) |
| 加载CA证书文件 | |
| bool | load_ca_path (const string &ca_path) |
| 加载CA证书目录 | |
| NEFORCE_NODISCARD string_view | peer_certificate_info () const |
| 获取对等方证书信息 | |
| NEFORCE_NODISCARD string_view | cipher_name () const |
| 获取当前密码套件名称 | |
| NEFORCE_NODISCARD string_view | protocol_version () const |
| 获取当前协议版本 | |
| NEFORCE_NODISCARD bool | has_ssl_context () const noexcept |
| 检查是否有SSL上下文 | |
| NEFORCE_NODISCARD bool | is_ssl_initialized () const noexcept |
| 检查SSL是否已初始化 | |
| NEFORCE_NODISCARD ssl_socket & | ssl_socket_ref () |
| 获取SSL socket引用 | |
| NEFORCE_NODISCARD const ssl_socket & | ssl_socket_ref () const |
| 获取SSL socket常量引用 | |
| Public 成员函数 继承自 tcp_client_base | |
| tcp_client_base ()=default | |
| 默认构造函数 | |
| tcp_client_base (dns_client dns) | |
| 构造函数(带DNS客户端) | |
| virtual | ~tcp_client_base () |
| 析构函数 | |
| void | set_connect_timeout (milliseconds timeout) |
| 设置连接超时时间 | |
| NEFORCE_NODISCARD milliseconds | connect_timeout () const noexcept |
| 获取连接超时时间 | |
| void | set_send_timeout (milliseconds timeout) |
| 设置发送超时时间 | |
| NEFORCE_NODISCARD milliseconds | send_timeout () const noexcept |
| 获取发送超时时间 | |
| void | set_recv_timeout (milliseconds timeout) |
| 设置接收超时时间 | |
| NEFORCE_NODISCARD milliseconds | recv_timeout () const noexcept |
| 获取接收超时时间 | |
| void | set_auto_reconnect (bool enable, int max_attempts=3) |
| 设置自动重连 | |
| NEFORCE_NODISCARD bool | is_auto_reconnect () const noexcept |
| 检查是否启用自动重连 | |
| NEFORCE_NODISCARD int | reconnect_attempts () const noexcept |
| 获取最大重连次数 | |
| NEFORCE_NODISCARD int | current_reconnect_attempt () const noexcept |
| 获取当前重连尝试次数 | |
| void | set_reconnect_delay (milliseconds delay) |
| 设置重连延迟时间 | |
| NEFORCE_NODISCARD milliseconds | reconnect_delay () const noexcept |
| 获取重连延迟时间 | |
| void | set_prefer_ipv6 (bool prefer) noexcept |
| 设置是否优先使用IPv6 | |
| NEFORCE_NODISCARD bool | prefer_ipv6 () const noexcept |
| 检查是否优先使用IPv6 | |
| void | set_dns_server (dns_client::config cfg) |
| 设置DNS服务器配置 | |
| void | set_exception_handler (exception_handler_t handler) |
| 设置异常处理器 | |
| void | set_connect_callback (connect_callback_t callback) |
| 设置连接成功回调 | |
| void | set_disconnect_callback (disconnect_callback_t callback) |
| 设置断开连接回调 | |
| virtual bool | connect (const string &host, ports port) |
| 连接到服务器 | |
| void | disconnect () noexcept |
| 断开连接 | |
| ssize_t | send (const void *data, size_t length) |
| 发送数据 | |
| ssize_t | send (string_view data) |
| 发送字符串数据 | |
| bool | send_all (const void *data, size_t length) |
| 发送所有数据(保证全部发送) | |
| bool | send_all (string_view data) |
| 发送所有字符串数据 | |
| ssize_t | receive (void *buffer, size_t length) |
| 接收数据 | |
| vector< char > | receive_all (size_t max_size=0) |
| 接收所有可用数据 | |
| bool | receive_exact (memory_view< char > buffer) |
| 接收指定大小的数据 | |
| optional< string > | receive_line (size_t max_length=8192) |
| 接收一行数据(以\n结尾) | |
| NEFORCE_NODISCARD bool | is_connected () const noexcept |
| 检查是否已连接 | |
| NEFORCE_NODISCARD bool | is_reconnecting () const noexcept |
| 检查是否正在重连 | |
| NEFORCE_NODISCARD const string & | connected_host () const noexcept |
| 获取当前连接的主机名 | |
| NEFORCE_NODISCARD ports | connected_port () const noexcept |
| 获取当前连接的端口 | |
| NEFORCE_NODISCARD tcp_socket & | socket () |
| 获取底层socket引用 | |
| NEFORCE_NODISCARD const tcp_socket & | socket () const |
| 获取底层socket常量引用 | |
| NEFORCE_NODISCARD dns_client & | get_dns_client () noexcept |
| 获取DNS客户端 | |
| NEFORCE_NODISCARD const dns_client & | get_dns_client () const noexcept |
| 获取DNS客户端常量引用 | |
Protected 成员函数 | |
| unique_ptr< tcp_socket > | create_socket () override |
| 创建新的socket对象 | |
| bool | post_connect () override |
| 连接建立后的额外处理 | |
| void | pre_disconnect () override |
| 连接断开前的清理工作 | |
| Protected 成员函数 继承自 tcp_client_base | |
| bool | try_connect_to_ip (const string &ip, ports port) |
| 尝试连接到指定IP | |
| bool | reconnect_if_needed () |
| 需要时执行重连 | |
| NEFORCE_ALWAYS_INLINE void | handle_exception (const exception &e) const |
| 处理异常 | |
额外继承的成员函数 | |
| Public 类型 继承自 tcp_client_base | |
| using | exception_handler_t = function<void(const exception&)> |
| 异常处理器类型 | |
| using | connect_callback_t = function<void(const string&, ports)> |
| 连接回调类型 | |
| using | disconnect_callback_t = function<void()> |
| 断开回调类型 | |
| Protected 属性 继承自 tcp_client_base | |
| dns_client | dns_ |
| DNS解析客户端 | |
| unique_ptr< tcp_socket > | socket_ |
| TCP socket | |
| string | connected_host_ |
| 已连接的主机名 | |
| ports | connected_port_ |
| 已连接的端口 | |
| int | reconnect_attempts_ = 3 |
| 最大重连次数 | |
| atomic< int > | current_reconnect_attempt_ {0} |
| 当前重连次数 | |
| milliseconds | connect_timeout_ {5000} |
| 连接超时 | |
| milliseconds | send_timeout_ {5000} |
| 发送超时 | |
| milliseconds | recv_timeout_ {5000} |
| 接收超时 | |
| milliseconds | reconnect_delay_ {1000} |
| 重连延迟 | |
| bool | auto_reconnect_ = false |
| 是否自动重连 | |
| bool | prefer_ipv6_ = false |
| 是否优先IPv6 | |
| atomic< bool > | is_reconnecting_ {false} |
| 是否正在重连 | |
| connect_callback_t | connect_callback_ |
| 连接成功回调 | |
| disconnect_callback_t | disconnect_callback_ |
| 断开连接回调 | |
| exception_handler_t | exception_handler_ |
| 异常处理器 | |
SSL/TLS客户端类
实现SSL/TLS加密的TCP客户端,支持证书验证和SNI。
使用示例:
在文件 tcp_client.hpp 第 436 行定义.
|
explicit |
构造函数(带SSL上下文)
| ctx | SSL上下文 |
| NEFORCE_NODISCARD string_view ssl_client::cipher_name | ( | ) | const |
获取当前密码套件名称
|
inlineoverrideprotectedvirtual |
|
inlinenoexcept |
|
inlinenoexcept |
| bool ssl_client::load_ca_file | ( | const string & | ca_file | ) |
加载CA证书文件
| ca_file | CA证书文件路径 |
| bool ssl_client::load_ca_path | ( | const string & | ca_path | ) |
加载CA证书目录
| ca_path | CA证书目录路径 |
| NEFORCE_NODISCARD string_view ssl_client::peer_certificate_info | ( | ) | const |
获取对等方证书信息
|
overrideprotectedvirtual |
| NEFORCE_NODISCARD string_view ssl_client::protocol_version | ( | ) | const |
获取当前协议版本
| void ssl_client::set_sni_hostname | ( | string | hostname | ) |
| void ssl_client::set_ssl_context | ( | ssl_context | ctx | ) |
| void ssl_client::set_verify_peer | ( | bool | verify | ) |
| NEFORCE_NODISCARD ssl_socket & ssl_client::ssl_socket_ref | ( | ) |
| NEFORCE_NODISCARD const ssl_socket & ssl_client::ssl_socket_ref | ( | ) | const |