HP-Socket 是一套通用的高性能 TCP/UDP/HTTP 网络通信框架,提供 C/C++、C#、Java、Python 等编译语言接口。
如果使用 HP-Socket 提供的 C++ 接口,需要使用 C++14 及以上的 C++ 版本。
详细使用参考:
HP-Socket 的 TCP 组件支持 PUSH、 PULL 和 PACK 三种接收模型。
组件接收到数据时会触发监听器对象的 OnReceive(pSender, dwConnID,pData, iLength) 事件,把数据“推”给应用程序。
组件接收到数据时会触发监听器对象的 OnReceive(pSender, dwConnID,iTotalLength) 事件,告诉应用程序当前已经接收到多少数据,应用程序检查数据的长度,如果满足需要则调用组件的 Fetch(dwConnID, pData, iDataLength) 方法把需要的数据“拉”出来。
PACK 模型系列组件是 PUSH 和 PULL 模型的结合体,应用程序不必处理分包(如: PUSH)与数据抓取(如: PULL), 组件保证每个 OnReceive 事件都向应用程序提供一个完整数据包。
详情参考 HP-Socket 提供的开发文档:HP-Socket Doc
另外,对于 TCP 的封包/粘包问题,HP-Socket 的 TCP 组件也有对应的处理: