青岛网站建设东橙品牌设计,google play官网入口,PHP企业网站开发实践,app设计网站模板免费下载1、接口
1.1 接口模型 1.2 三类接口
HP-Socket 定义了三类接口
组件接口#xff08;如#xff1a;ITcpServer / IUdpClient#xff09;#xff1a;声明组件操作方法#xff0c;应用程序创建组件对象后通过该接口来使用组件组件实现类#xff08;如#xff1a;CTcpSer…1、接口
1.1 接口模型 1.2 三类接口
HP-Socket 定义了三类接口
组件接口如ITcpServer / IUdpClient声明组件操作方法应用程序创建组件对象后通过该接口来使用组件组件实现类如CTcpServer / CUdpClient实现组件接口执行实际通信处理工作并向监听器报告通信事件监听器接口如ITcpServerListener / IUdpClientListener声明组件的通信事件回调方法
2、流程交互
2.1 服务器端 Server 2.2 客户端 Client 2.3 代理 Agent
Agent 组件本质上是 Client 组件一个 Agent 对象能同时管理多个客户端连接
2.4 UDP 节点普通UDP Socket 2.5 UDP ARQ可靠 UDP
UDP ARQ自动重传请求 UDP、可靠 UDP
3、接收、发送策略
3.1 三种接收模型
1PUSH 模型组件接收到数据时会触发监听器对象的 OnReceive(pSender, dwConnID, pData, iLength) 事件把数据“推”给应用程序。
PUSH 模型组件触发监听器对象的 OnReceive(pSender, dwConnID, pData, iLength)事件时应用程序需要立即处理接收到的数据如粘包处理、协议解析等。组件不会对应用层的数据处理工作提供任何协助。
2PULL 模型组件接收到数据时会触发监听器对象的 OnReceive(pSender, dwConnID, iTotalLength) 事件告诉应用程序当前已经接收到多少数据应用程序检查数据的长度如果满足需要则调用组件的 Fetch(dwConnID, pData, iDataLength) 方法把需要的数据“拉”出来。
PULL 模型组件触发监听器对象的 OnReceive(pSender, dwConnID, iTotalLength) 事 件时应用程序根据应用层协议检测接收到的数据长度iTotalLength是否满足处理条件选择性地进行处理。当 iTotalLength 小于当前期望的长度时可以忽略本次 事 件 当 iTotalLength 大于或等于当前期望的长度时循环调用组件的Fetch(dwConnID, pData, iDataLength) 方法把需要的数据拉取出来直到剩余的数据长度小于当前期望的长度。
3PACK 模型PACK 模型系列组件是 PUSH 和 PULL 模型的结合体应用程序不必处理分包如PUSH与数据抓取如PULL组件保证每个 OnReceive 事件都向应用程序提供一个完整数据包。
PACK 模型组件触发监听器对象的 OnReceive(pSender, dwConnID, pData, iLength)事件时会保证 pData 是一个完整的数据包。PACK 模型组件会对应用程序发送的每个数据包自动加上 4 字节32 位的包头组件接收到数据时根据包头信息自动分包每个完整数据包通过 OnReceive 事件发送给应用程序。
PACK 包头格式 XXXXXXXXXX YYYYYYYYYYYYYYYYYYYYYY 前 10 位 X 为包头标识位用于数据包校验。有效包头标识取值范围 0 ~ 10230x3FF当包头标识等于 0 时不校验包头。后 22 位 Y 为长度位记录包体长度。有效数据包最大长度不能超过 41943030x3FFFFF字节默认长度限制为2621440x40000字节。应 用程序可以通过 SetPackHeaderFlag() 和 SetMaxPackSize() 分别设置包头标识与最大包长限制。
3.2 发送策略
对于 IClient 系列组件当应用程序调用组件的 Send()、SendPackets()、SendSmallFile()方法发送数据时组件内部会把数据缓存起来在适当的时机再发送出去。
对于 IServer 和 IAgent 系列组件当应用程序调用组件的 Send()、SendPackets()、SendSmallFile() 方法发送数据时根据不同的发送策略会有不同的处理方式。
发送策略通过 SetSendPolicy(enSendPolicy) 方法进行设置共有三种策略
SP_PACK 打包策略默认尽量把多个发送操作的数据组合在一起发送增加传输效率。SP_SAFE 安全策略尽量把多个发送操作的数据组合在一起发送并尽量避免缓冲区溢出。SP_DIRECT 直接策略对每一个发送操作都直接投递适用于负载不高但要求实时性较高的场合。
注意Linux 平台的通信组件不支持发送策略设置所有 Linux 通信组件的发送策略均为SP_PACK
4、其它特征
全面支持SSL、HTTP、Cookie、线程池、数据压缩与解压