KCP端点结构体。
More...
#include <kcp_endpoint.h>
|
| typedef int(* | output) (const char *buf, int len, struct IKCPCB *kcp, void *user) |
| | KCP输出回调函数类型。
|
|
|
| ~kcp_endpoint () |
| | 析构函数,释放KCP控制块。
|
| void | create (int32_t aconv, uint32_t asessionid, void *auser) |
| | 创建KCP控制块。
|
|
void | removetimer () |
| | 移除KCP更新定时器。
|
| int | setmtu (int mtu) |
| | 设置KCP最大传输单元(MTU)。
|
| void | setoutput (output afun) |
| | 设置KCP输出回调函数。
|
| int | nodelay (int nodelay, int interval, int resend, int nc) |
| | 设置KCP nodelay模式。
|
| int | wndsize (int sndwnd, int rcvwnd) |
| | 设置KCP发送和接收窗口大小。
|
| void | update (uint32_t current) |
| | 更新KCP状态。
|
| int | input (const char *data, long size) |
| | 向KCP输入数据。
|
| int | recv (char *buffer, int len) |
| | 从KCP接收数据。
|
|
int | peeksize () const |
| int | send (const char *buffer, int len) |
| | 通过KCP发送数据。
|
|
void | flush () |
| | 强制刷新KCP发送缓冲区。
|
|
void | release () |
| | 释放KCP控制块。
|
|
|
basio::ip::udp::endpoint | m_endpoint |
| | 远端UDP端点
|
|
i32_sessionid | m_session = 0 |
| | 本地合成会话ID
|
|
std::string | m_ip |
| | 缓存的远端IP字符串
|
|
i16_port | m_port = 0 |
| | 缓存的远端端口
|
|
asio_kcp * | m_asiokcp = nullptr |
| | 所属的asio_kcp传输
|
|
ikcpcb * | m_kcp = nullptr |
| | Underlying KCP control block.
|
|
std::mutex | m_kcpmutex |
| | Protects ikcpcb; KCP is not thread-safe.
|
|
bool | m_isconnect = false |
| | True after logical KCP handshake.
|
|
i64_actorid | m_client = 0 |
| | 逻辑客户端actor ID
|
|
i64_actorid | m_server = 0 |
| | 逻辑服务端actor ID
|
|
int64_t | m_timerid = 0 |
| | 周期性ikcp_update定时器ID
|
|
npack_list | m_npacklist |
| | 待发送数据包队列
|
KCP端点结构体。
表示一个KCP连接端点,封装了KCP控制块和远端UDP端点信息。 主要功能包括:
- 管理KCP控制块的生命周期
- 提供KCP协议的薄封装API
- 维护会话ID和Actor ID映射
- 支持KCP握手和连接状态管理
- 管理异步发送队列
- Note
- 继承自std::enable_shared_from_this,支持安全的shared_ptr传递。
-
使用npack_list管理待发送的数据包队列。
◆ output
| typedef int(* ngl::kcp_endpoint::output) (const char *buf, int len, struct IKCPCB *kcp, void *user) |
KCP输出回调函数类型。
- Parameters
-
| buf | 数据缓冲区 |
| len | 数据长度 |
| kcp | KCP控制块 |
| user | 用户数据指针 |
- Returns
- 成功返回0,失败返回非0
◆ create()
| void ngl::kcp_endpoint::create |
( |
int32_t | aconv, |
|
|
uint32_t | asessionid, |
|
|
void * | auser ) |
创建KCP控制块。
- Parameters
-
| aconv | KCP会话标识 |
| asessionid | 会话ID |
| auser | 用户数据指针 |
◆ input()
| int ngl::kcp_endpoint::input |
( |
const char * | data, |
|
|
long | size ) |
向KCP输入数据。
- Parameters
-
- Returns
- 成功返回0,失败返回非0
◆ ip()
获取端点的IP地址字符串。
- Parameters
-
- Returns
- IP地址字符串
◆ nodelay()
| int ngl::kcp_endpoint::nodelay |
( |
int | nodelay, |
|
|
int | interval, |
|
|
int | resend, |
|
|
int | nc ) |
设置KCP nodelay模式。
- Parameters
-
| nodelay | 是否启用nodelay |
| interval | 内部刷新间隔 |
| resend | 快速重传触发次数 |
| nc | 是否关闭流控 |
- Returns
- 成功返回0,失败返回非0
◆ port()
获取端点的端口号。
- Parameters
-
- Returns
- 端口号
◆ recv()
| int ngl::kcp_endpoint::recv |
( |
char * | buffer, |
|
|
int | len ) |
从KCP接收数据。
- Parameters
-
- Returns
- 接收到的数据长度,失败返回负值
◆ send()
| int ngl::kcp_endpoint::send |
( |
const char * | buffer, |
|
|
int | len ) |
通过KCP发送数据。
- Parameters
-
- Returns
- 成功返回0,失败返回非0
◆ setmtu()
| int ngl::kcp_endpoint::setmtu |
( |
int | mtu | ) |
|
设置KCP最大传输单元(MTU)。
- Parameters
-
- Returns
- 成功返回0,失败返回非0
◆ setoutput()
| void ngl::kcp_endpoint::setoutput |
( |
output | afun | ) |
|
◆ update()
| void ngl::kcp_endpoint::update |
( |
uint32_t | current | ) |
|
◆ wndsize()
| int ngl::kcp_endpoint::wndsize |
( |
int | sndwnd, |
|
|
int | rcvwnd ) |
设置KCP发送和接收窗口大小。
- Parameters
-
| sndwnd | 发送窗口大小 |
| rcvwnd | 接收窗口大小 |
- Returns
- 成功返回0,失败返回非0
The documentation for this struct was generated from the following files: