CAPABILITIES
围绕你的业务,组织数据能力。
从一条连接到多来源消息,清楚地组织收发过程。
TCP 客户端与服务端
提供监听、接入、名称交换、连接列表与断线通知,组织应用间的对象消息收发。
ElaTcpClient · ElaTcpServer直接发送业务对象
接收业务类型或 ElaVariant,完成二进制编码、报文封装与对象恢复;可选择 LZ4 压缩。
sendPacket · recvPacket半包与粘包处理
保留未收齐的包头和正文,在后续调用继续接收,每次向业务层交付一条完整消息。
完整消息边界UDP 分片与重组
支持多来源,同时保留多条待完成消息并组包,处理乱序与重复分片,按消息完成顺序交付对象。
ElaUdpClient组播与网络参数
配置组播组、TTL 和默认接口;TCP 支持 Nagle 开关、内核缓冲区与用户态缓存参数。
ElaTcpOptions · ElaUdpOptions资源预算与错误信息
配置 UDP 消息长度、待组包容量、消息数与生存期;支持 I/O 等待预算及发送错误查询。
getLastSendErrorC++ / QT · CODE EXAMPLES
把设备状态作为对象发送。
建立 TCP 连接,直接发送与接收已注册的业务对象。
TCP 对象收发 · C++14
// 服务端已监听该地址,并回送同类型的业务对象。
ElaTcpClient client("AcquisitionClient");
client.initClient("127.0.0.1", 9050);
ElaDeviceState state;
client.sendPacket(state);
const auto response = client.recvPacket().value<ElaDeviceState>();类型注册 · C++14
struct ElaDeviceState {
int deviceId{1}; // 设备标识。
double temperature{25.0}; // 温度,单位摄氏度。
};
ELA_BEGIN_META(ElaDeviceState)
ELA_FIELDS(deviceId, temperature)
ELA_END_META()API 用法片段,省略工程初始化与错误处理,仅展示核心功能。
WHERE IT FITS
把能力带入实际场景。
局域网设备通信
以业务结构承载设备参数、采集数据与运行状态。
应用间状态交换
通过 TCP 对象报文处理消息边界,在接收端恢复注册类型。
组播数据分发
按场景配置组播组、默认接口与 TTL,组织一对多数据分发。
INTEGRATION NOTES
接入之前,了解这些细节。
区分发送成功与业务确认
sendPacket 的正返回值表示完整序列化正文已提交发送。对端是否完成处理,应由业务响应确认。
界面线程与等待预算
连接包含同步握手;可能阻塞的 I/O 应安排到工作线程。waitTime 的单位为秒,限制 I/O 等待,不包含序列化耗时。
明确 UDP 的能力边界
支持乱序分片重组不等同于可靠 UDP;业务 ACK、自动重传和 TLS 需要由应用方案另行提供。
Liniyous · Ela 开发者
QQ80985
微信liniyous
ElaMetaPacket 为付费项目;具体授权以沟通确认为准。