让你的HpSocket Pull支持同步(应答式)操作
阅读原文时间:2023年09月07日阅读:1

什么是HPSocket

HP-Socket 是一套通用的高性能 TCP/UDP 通信框架,包含服务端组件、客户端组件和Agent组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++、C#、Delphi、E(易语言)、Java、Python 等编程语言接口。HP-Socket 对通信层实现完全封装,应用程序不必关注通信层的任何细节;HP-Socket 提供基于事件通知模型的 API 接口,能非常简单高效地整合到新旧应用程序中[1] 。

为了让使用者能方便快速地学习和使用 HP-Socket ,迅速掌握框架的设计思想和使用方法,特此精心制作了大量 Demo 示例(如:PUSH 模型示例、PULL 模型示例、性能测试示例以及其它编程语言示例)。HP-Socket 目前运行在 Windows 平台,将来会实现跨平台支持。

— 百度百科

什么是异步, 什么是同步

“HPsocket所有组件都是异步的” 我记得我开始学习HP的时候看见这行字我内心是崩溃的.

我觉得一些聊天室/游戏什么的才用异步, 那么我专门写一些网关中间件什么的. 常用的是”应答式(同步)”. 即: 发送<—>响应. 类似http请求, 但不会断开客户端

异步: 专门绑定一个事件, 收到的所有数据都投送给事件处理. 适合聊天室/游戏等等

同步: 发送后等待响应, 获取响应数据后继续向下执行. 不需要绑定事件什么的. 类似post, 不会断开连接就是了

为什么做这个玩意

记得是去年开始学习hp的, 当时在群”怪物乐园”询问如何实现同步. 与某(忘记了)个管理发生了py交易. 他热心的帮助我写了一个”PACK模型”的同步操作例子.

之后应用在一个项目中并不理想, 因为PACK模型是整个包发送, 有大小限制, 还经常出现问题.

今年一个项目想用HP的PULL模型, 所以自己分析那个大神给的例子. 终于魔改封装出了一个”PULL模型”的同步操作类.

之前有易友希望我开源, 其实我早就想开源了的, 因为需要从项目中分离出来太麻烦了, 而且工作忙(上班), 所以就拖到了今天

道理我都懂, 裤子都脱了, 你的源码呢?

百度网盘: http://pan.baidu.com/s/1dF8FQvB

备忘位置: \剑齿虎233\Share\HPSocket Pull模型同步.zip