澳门新葡萄京娱乐网站-澳门新葡萄京888官网-所有平台

热门关键词: 澳门新葡萄京娱乐网站,澳门新葡萄京888官网

通讯框架澳门新葡萄京娱乐网站

作者: 澳门新葡萄京娱乐网站  发布:2019-12-21

澳门新葡萄京娱乐网站 1

HP-Socket是一套通用的高性能TCP/UDP/HTTP通信框架,包含服务端组件、客户端组件和Agent组件,广泛适用于各种不同应用场景的TCP/UDP/HTTP通信系统,提供C/C++、C#、Delphi、E、Java、Python等编程语言接口。HP-Socket对通信层实现完全封装,应用程序不必关注通信层的任何细节;HP-Socket提供基于事件通知模型的API接口,能非常简单高效地整合到新旧应用程序中。 为了让使用者能方便快速地学习和使用HP-Socket,迅速掌握框架的设计思想和使用方法,特此精心制作了大量Demo示例。HP-Socket目前运行在Windows平台,将来会实现跨平台支持。*HP-Socket官方网站:*HP-Socket项目主页:*HP-Socket开发文档: 1、HP-Socket的唯一职责就是接收和发送字节流,不参与应用程序的协议解析等工作。 2、HP-Socket与应用程序通过接口进行交互,并完全解耦。任何应用只要实现了HP-Socket的接口规范都可以无缝整合HP-Socket。 1、易用性对所有通用框架都是至关重要的,如果太难用还不如自己重头写一个来得方便。因此,HP-Socket的接口设计得非常简单和统一。 2、HP-Socket完全封装了所有底层通信细节,应用程序不必也不能干预底层通信操作。通信连接被抽象为ConnectionID,ConnectionID作为连接的唯一标识提供给应用程序来处理不同的连接。 3、HP-Socket提供PUSH/PULL/PACK等接收模型,应用程序可以灵活选择以手工方式、半自动方式或全自动方式处理封解包,PULL/PACK接收模型在降低封解包处理复杂度的同时能大大减少出错几率。 Client组件:基于EventSelect通信模型,在单独线程中执行通信操作,避免与主线程或其他线程相互干扰。每个组件对象管理一个Socket连接。 Server组件:基于IOCP通信模型,并结合缓存池、私有堆等技术,支持超大规模连接,在高并发场景下实现高效内存管理。 Agent组件:对于代理服务器或中转服务器等应用场景,服务器自身也作为客户端向其它服务器发起大规模连接,一个Agent组件对象同时可管理多个Socket连接;Agent组件与Server组件采用相同的技术架构,可以用作代理服务器或中转服务器的客户端部件。 应用程序能够根据不同的容量要求、通信规模和资源状况等现实场景调整HP-Socket的各项性能参数,优化资源配置,在满足应用需求的同时不必过度浪费资源。------------------------------------------------------------------------------------------------***v4.1.2更新**WebSocket支持:-----------------1、所有HTTP组件增加WebSocket方法:1)SendWSMessage():发送WebSocket数据包2)GetWSMessageState():获取当前WebSocket状态2、所有HTTP组件监听器增加WebSocket事件:1)OnWSMessageHeader():WebSocket数据包头通知2)OnWSMessageBody():WebSocket数据包体通知3)OnWSMessageComplete():WebSocket数据包完成通知3、示例DemoTestEcho-Http和TestEcho-Http-4C支持WebSocket增加HTTPSyncClient通信组件:-----------------1、HTTPSyncClient实现同步HTTP通信,不需要事件监听器2、HTTPSyncClient组件类:CHttpSyncClient、CHttpsSyncClient3、HTTPSyncClient实现接口:ITcpClient/IHttpSyncRequester4、示例DemoTestEcho-Http和TestEcho-Http-4C提供HTTPSyncClient示例其它更新:*-----------------1、采用新环形缓冲区算法提高异步操作安全性2、采用延时释放策略提高HTTP异步操作安全性------------------------------------------------------------------------------------------------***v4.0.1更新***增加HTTP系列通信组件:**-----------------1、新增HTTPServer组件:1)组件类:CHttpServer、CHttpsServer2)实现接口:ITcpServer/IComplexHttpResponder3)监听器接口:IHttpServerListener2、新增HTTPAgent组件:1)组件类:CHttpAgent、CHttpsAgent2)实现接口:ITcpAgent/IComplexHttpRequester3)监听器接口:IHttpAgentListener3、新增HTTPClient组件:1)组件类:CHttpClient、CHttpsClient2)实现接口:ITcpClient/IHttpRequester3)监听器接口:IHttpClientListener4、新增HTTP示例Demo:1)TestEcho-Http2)TestEcho-Http-4C5、Http监听器:1)监听器事件:

OnMessageBegin():开始解析OnRequestLine():请求行解析完成OnStatusLine():状态行解析完成OnHeader():请求头通知OnHeadersComplete():请求头完成通知OnBody():请求体报文通知OnChunkHeader():Chunked报文头通知OnChunkComplete():Chunked报文结束通知OnMessageComplete():完成解析通知OnUpgrade():升级协议通知OnParseError():解析错误通知

2)监听器事件返回值:

HPR_OK:继续解析HPR_SKIP_BODY:跳过当前请求BODYHPR_UPGRADE:升级协议HPR_ERROR:终止解析,断开连接

组件接口调整:-----------------1、IServer和IAgent组件的所有监听器回调方法增加‘事件源’参数,如:OnShutdown()-OnShutdown(T*pSender)2、IClient组件的所有监听器回调方法增加‘连接ID’参数,如:OnHandShake(IClient*pClient)-OnHandShake(T*pSender,CONNIDdwConnID)3、IServer和IAgent接口增加接口方法:Get/SetMaxConnectionCount()用于设置最大连接数,最大连接数默认:100004、OnHandShake()事件触发规则调整:非SSL组件在OnConnect()事件后也触发OnHandShake()事件,使SSL组件和SSL组件处理流程一致5、HPSocket4C增加PACK组件监听器的创建、销毁方法,新版本必须使用下列方法创建、销毁PACK组件监听器:1)Create_HP_TcpPackServerListener/Destroy_HP_TcpPackServerListener2)Create_HP_TcpPackAgentListener/Destroy_澳门新葡萄京娱乐网站,HP_TcpPackAgentListener3)Create_HP_TcpPackClientListener/Destroy_HP_TcpPackClientListener6、SSL组件支持SNI1)SSL初始化方法HP_SSL_Initialize(),增加SNI回调函数指针参数2)新增方法HP_SSL_AddServerContext(),用于加载SNI主机证书其他更新:-----------------1、IServer和IAgent组件采用RingPool取代R/WLock+Map维护活动连接,提升读写和并发性能2、更新所有Demo示例代码------------------------------------------------------------------------------------------------***v3.5.1更新**增加SSL系列通信组件:-----------------1、新增SSLPUSH组件:CSSLServer、CSSLAgent、CSSLClient2、新增SSLPULL组件:CSSLPullServer、CSSLPullAgent、CSSLPullClient3、新增SSLPACK组件:CSSLPackServer、CSSLPackAgent、CSSLPackClient4、SSLServer实现ITcpServer接口,SSLAgent实现ITcpAgent接口,SSLClient实现ITcpClient接口5、启动SSL通信组件前需要调用HP_SSL_Initialize()函数初始化SSL全局环境参数6、通信结束后调用HP_SSL_Cleanup()函数清理SSL全局运行环境7、新增SSL相关示例Demo:1)TestEcho-SSL2)TestEcho-SSL-Pack3)TestEcho-SSL-4C4)TestEcho-SSL-PFM组件接口调整:-----------------1、ITcpServerListener接口增加SSL握手成功事件:OnHandShake(CONNIDdwConnID)2、ITcpAgentListener接口增加SSL握手成功事件:OnHandShake(CONNIDdwConnID)3、ITcpClientListener接口增加SSL握手成功事件:OnHandShake(IClientpClient)4、枚举类型EnSocketError增加‘SSL环境未就绪’错误代码SE_SSL_ENV_NOT_READY5、增加枚举类型:EnSSLSessionMode,EnSSLVerifyMode6、HPSocket-SSLDLL主要头文件:SocketInterface-SSL.h,HPSocket-SSL.h7、HPSocket4C-SSLDLL主要头文件:HPSocket4C-SSL.h8、TcpPack系列组件可设置的最大包长调整为4194303/0x3FFFFF字节9、TcpPack系列组件的有效包头标识取值范围调整为0~1023/0x3FF*增加静态库工程:*-----------------1、新增项目工程HPSocketLIB和HPSocketLIB4C用于编译HPSocket和HPSocket4C静态库2、静态库与动态库的使用方式一致3、使用HPSocket或HPSocket4C静态库时,需要在工程属性中定义预处理宏-HPSOCKET_STATIC_LIB4、静态库目标文件不包含在发布包中,如果需要请自行编译------------------------------------------------------------------------------------------------***v3.4.1更新***增加TcpPack系列通信组件:**-----------------1、TcpPack系列组件保证每个OnReceive事件都向应用程序提供一个完整数据包2、TcpPack系列组件是PUSH/PULL模式的结合体,应用程序不必处理分包与数据抓取3、TcpPack系列组件提供Get/SetMaxPackSize()和Get/SetPackHeaderFlag()方法,用来设置最大包长和包头标识4、CTcpPackServer实现ITcpServer接口,CTcpPackAgent实现ITcpAgent接口,CTcpPackClient实现ITcpClient接口组件接口调整:-----------------1、OnClose/OnError合并为一个通信事件:OnClose(CONNIDdwConnID,EnSocketOperationenOperation,intiErrorCode)2、枚举类型EnSocketOperation增加一个枚举值:SO_CLOSE=5,标识关闭Socket操作3、IServer和IAgent接口删除接口方法:Get/SetRecvPolicy()4、IServer和IAgent接口删除接口方法:Get/SetMaxShutdownWaitTime()------------------------------------------------------------------------------------------------

本文由澳门新葡萄京娱乐网站发布于澳门新葡萄京娱乐网站,转载请注明出处:通讯框架澳门新葡萄京娱乐网站

关键词: