当前位置: 首页 > 工具软件 > HP-Socket > 使用案例 >

【C++】HP-Socket 使用

廖弘伟
2023-12-01

1. HP-Socket 介绍

HP-Socket 是一套通用的高性能 TCP/UDP/HTTP 网络通信框架,提供 C/C++、C#、Java、Python 等编译语言接口。

如果使用 HP-Socket 提供的 C++ 接口,需要使用 C++14 及以上的 C++ 版本。

详细使用参考:

  1. HP-Socket 高性能网络通信框架
  2. 伤神小怪兽 / HP-Socket
  3. HP-Socket Github
  4. HP-Socket 官方例程解析

HP-Socket 的 TCP 组件支持 PUSH、 PULL 和 PACK 三种接收模型。

  • PUSH 模型(手动方式封解包)

组件接收到数据时会触发监听器对象的 OnReceive(pSender, dwConnID,pData, iLength) 事件,把数据“推”给应用程序。

  • PULL 模型(半自动方式)

组件接收到数据时会触发监听器对象的 OnReceive(pSender, dwConnID,iTotalLength) 事件,告诉应用程序当前已经接收到多少数据,应用程序检查数据的长度,如果满足需要则调用组件的 Fetch(dwConnID, pData, iDataLength) 方法把需要的数据“拉”出来。

  • PACK 模型(全自动方式封解包)

PACK 模型系列组件是 PUSH 和 PULL 模型的结合体,应用程序不必处理分包(如: PUSH)与数据抓取(如: PULL), 组件保证每个 OnReceive 事件都向应用程序提供一个完整数据包。

详情参考 HP-Socket 提供的开发文档:HP-Socket Doc

另外,对于 TCP 的封包/粘包问题,HP-Socket 的 TCP 组件也有对应的处理:

  1. PUSH 模型:应用程序手工处理粘包
  2. PULL 模型:与应用层协议配合,半自动处理粘包
  3. PACK 模型:通信组件自动处理粘包

2. 示例

见:HPSocketDemo

 类似资料: