|
ngl_server 1.0
基于 Actor 模型的 C++ 服务器框架
|
分段数据包重组器。 More...
#include <segpack.h>
Public Types | |
| enum class | edopush { e_continue , e_break , e_error } |
| 推送操作的结果枚举。 More... | |
Public Member Functions | |
| segpack ()=default | |
| 默认构造函数。 | |
| bool | push (i32_socket aid, const char *ap, int alen, bool aislanip) |
| 推送一个接收分片。 | |
| void | close (i32_socket aid) |
| 关闭socket连接。 | |
分段数据包重组器。
负责将TCP流中接收到的分段数据重组为完整的网络数据包。 主要功能包括:
|
strong |
| void ngl::segpack::close | ( | i32_socket | aid | ) |
关闭socket连接。
关闭指定socket连接的分段包处理
清理指定socket的所有相关资源,包括部分接收的数据包和速率限制信息。
| aid | socket标识符 |
| aid | socket描述符 |
| bool ngl::segpack::push | ( | i32_socket | aid, |
| const char * | ap, | ||
| int | alen, | ||
| bool | aislanip ) |
推送一个接收分片。
接收网络数据并进行分段重组
将接收到的TCP分片数据推送到重组器中进行处理。 仅当分片已被完全消费或安全缓存以待后续完成时返回true。
| aid | socket标识符 |
| ap | 接收到的数据指针 |
| alen | 数据长度(字节) |
| aislanip | 是否为局域网IP |
循环处理接收缓冲区中的所有完整数据包。若ap和alen均为零则清除连接。
| aid | socket描述符 |
| ap | 接收到的数据缓冲区指针 |
| alen | 数据长度(字节) |
| aislanip | 是否为局域网IP连接 |
| true | 所有数据处理完毕 |
| false | 处理过程中出现错误(非法参数或数据包解析失败) |