基于Asio的TCP网络管理类。
More...
#include <asio_tcp.h>
|
| | asio_tcp (i16_port aport, i32_threadsize athread, const tcp_callback &acallfun, const tcp_closecallback &aclosefun, const tcp_sendfinishcallback &asendfinishfun) |
| | 构造一个在指定端口监听的TCP服务端。
|
|
| asio_tcp (const net_listen_endpoint &alisten, i32_threadsize athread, const tcp_callback &acallfun, const tcp_closecallback &aclosefun, const tcp_sendfinishcallback &asendfinishfun) |
| | asio_tcp (i32_threadsize athread, const tcp_callback &acallfun, const tcp_closecallback &aclosefun, const tcp_sendfinishcallback &asendfinishfun) |
| | 构造一个无监听socket的TCP客户端池。
|
| i16_port | port () const |
| | 获取监听端口。
|
| service_tcp * | connect (const str_ip &aip, i16_port aport, const tcp_connectcallback &afun, int acount=5) |
| | 发起带可选重试次数的出站TCP连接。
|
| bool | send (i32_sessionid asessionid, std::shared_ptr< pack > &apack) |
| | 将类型化的pack入队进行异步发送。
|
| bool | send (i32_sessionid asessionid, std::shared_ptr< void > &apack) |
| | 将类型擦除的pack入队进行异步发送。
|
| void | close (i32_sessionid sessionid) |
| | 关闭会话并通知回调。
|
| void | close (service_tcp *atcp) |
| | 关闭指定的TCP连接并通知回调。
|
| void | close_net (i32_sessionid sessionid) |
| | 关闭会话但不触发上层回调。
|
| bool | get_ipport (i32_sessionid assionid, std::pair< str_ip, i16_port > &apair) |
| | 查询对端地址信息。
|
| void | set_close (i32_sessionid asession, const std::function< void()> &afun) |
| | 注册单个会话级关闭回调。
|
|
|
class | service_tcp |
| | 声明service_tcp为友元类
|
基于Asio的TCP网络管理类。
提供完整的TCP服务器和客户端功能,包括:
- 监听和接受客户端连接
- 建立到服务器的连接
- 管理网络会话生命周期
- 异步数据发送和接收
- 连接关闭和资源清理
- Note
- 该类不可复制,不可默认构造,必须通过指定参数构造。
-
使用Boost.Asio作为底层网络库,提供高性能的异步网络操作。
◆ anonymous enum
TCP配置常量枚举。
| Enumerator |
|---|
| etcp_buffmaxsize | TCP缓冲区最大字节数
|
| etcp_connect_interval | 连接重试间隔(秒)
|
◆ asio_tcp() [1/2]
构造一个在指定端口监听的TCP服务端。
- Parameters
-
| aport | 监听端口号 |
| athread | 工作线程数量 |
| acallfun | 数据接收回调函数 |
| aclosefun | 连接关闭回调函数 |
| asendfinishfun | 发送完成回调函数 |
◆ asio_tcp() [2/2]
构造一个无监听socket的TCP客户端池。
- Parameters
-
| athread | 工作线程数量 |
| acallfun | 数据接收回调函数 |
| aclosefun | 连接关闭回调函数 |
| asendfinishfun | 发送完成回调函数 |
◆ close() [1/2]
◆ close() [2/2]
关闭指定的TCP连接并通知回调。
- Parameters
-
◆ close_net()
◆ connect()
发起带可选重试次数的出站TCP连接。
- Parameters
-
| aip | 目标IP地址 |
| aport | 目标端口号 |
| afun | 连接成功回调函数 |
| acount | 重试次数,默认为5次 |
- Returns
- 连接成功返回service_tcp指针,否则返回nullptr
◆ get_ipport()
查询对端地址信息。
- Parameters
-
| assionid | 会话ID |
| apair | 输出参数,存储IP地址和端口 |
- Returns
- 查询成功返回true,否则返回false
◆ port()
◆ send() [1/2]
| bool ngl::asio_tcp::send |
( |
i32_sessionid | asessionid, |
|
|
std::shared_ptr< pack > & | apack ) |
将类型化的pack入队进行异步发送。
- Parameters
-
| asessionid | 目标会话ID |
| apack | 要发送的数据包共享指针 |
- Returns
- 发送成功返回true,否则返回false
◆ send() [2/2]
| bool ngl::asio_tcp::send |
( |
i32_sessionid | asessionid, |
|
|
std::shared_ptr< void > & | apack ) |
将类型擦除的pack入队进行异步发送。
- Parameters
-
| asessionid | 目标会话ID |
| apack | 要发送的数据包共享指针(类型擦除) |
- Returns
- 发送成功返回true,否则返回false
◆ set_close()
| void ngl::asio_tcp::set_close |
( |
i32_sessionid | asession, |
|
|
const std::function< void()> & | afun ) |
The documentation for this class was generated from the following files: