高性能 Windows Socket 组件 HP-Socket v3.0.1 正式发布

来源:未知作者:操作系统 日期:2020/02/08 03:56 浏览:

HP-Socket是黄金时代套通用的高质量WindowsSocket组件包,包罗服务端组件和顾客端组件,分布适用于Windows平台的TCP通讯系统。HP-Socket对通讯层完成完全封装,上层应用不必关心通讯层的其余细节;HP-Socket提供基于事件通报模型的API接口,能极其轻易高效地结合到各种应用程序中;此外,为了让大家能更有帮助的就学HP-Socket,特此精心制作了四个功力测量检验示例多个属性测量检验示例和一个PULL模型测量试验示例,顾客可以经过那四个测量试验示例入手,飞快掌握组件的设计思想和平运动用方法。*HP-Socket官方网站:*HP-Socket下载地址:通用性 通讯组件的唯大器晚成职责正是经受和出殡和下葬字节流,绝对不能够到场上层左券分析等工作;与上层使用者解耦、互不重视,组件与使用者通过操作接口和监听器接口举行交互作用,组件完结操作接口为上层提供操作方法;使用者实现监听器接口把团结注册为组件的Listener,接纳组件布告。因而,任何使用者假设实现了监听器接口都足以应用组件;其他方面,以至足以慈祥重新写二个贯彻方式完全两样的零件达成给使用者调用,只要该器件固守组件的操作接口,那也是DIP设计规范的反映。可用性 可用性对持有通用组件都以尤为重要的,要是太难用还不比自身重头写一个人展馆示平价。由此,组件的操作接口和监听器接口设计得硬着头皮轻便易用,那多个接口的关键格局均不超越5个。别的,组件完全封装了装有的尾部Socket通讯,上层应用看不到任何通讯细节,不必也不能够干预任何通讯操作,Socket连接被架空为ConnectionID,该参数作为接二连三标志提须要上层应用识别分裂的三回九转。高性能 作为底层的通用组件,品质难题是必得酌量的,一定不可能成为系统的瓶颈。而其他方面,从实际上出发,依照客户端组件与服务端组件的性子供给运用分化的Socket模型。组件在设计上丰富思忖了质量、现实应用情状、可用性和完毕复杂性等要素,确定保障满意质量须要的还要又不会写得太复杂。做出以下两点陈设决策: 顾客端:在独立线程中贯彻Socket通信人机联作。那样可避防止与主线程或任何线程互相烦扰;I/O模型选用伊芙ntSelect通讯模型。 服务端:接受Windows平台功用最高的IOCP通讯模型;利用缓存池技术,在通讯的历程中,平常须要频繁的申请和刑满释放解除劳教内部存款和储蓄器缓冲区,创建了动态缓存池,独有当缓存池中并未有可用对象时才创造新对象,而当缓存对象过多时则会压缩缓存池;此外,组件的动态内部存款和储蓄器通过个人堆机制分配,制止与new/malloc角逐同时又回退内部存款和储蓄器空洞。伸缩性 能够依据实际的应用条件需求安装组件的各样质量参数。------------------------------------------------------------------------------------------------***v3.0.1更新***高性能 Windows Socket 组件 HP-Socket v3.0.1 正式发布。新扩大UDP通讯组件:-----------------新扩充多少个UDP通信组件:CUdpServer为服务端组件,CUdpClient为顾客端组件服务端组件CUdpServer接纳IOCP通讯模型顾客端组件CUdpClient采取EventSelect通讯模型UDP通讯组件的接口与原TCP通信组件生机勃勃致,轻松实用UDP通讯组件内置通讯线路自动监测机制新增添UDP通讯组件示例工程TestEcho-UDP代码重构与优化:-----------------规范全体接口、类以致代码文件的命名重商谈优化了大气组件代码服务端组件参预读写锁机制,有效平衡管理品质与安全性服务端组件的Socket对象缓存列表设置了锁依期期,升高访谈的安全性提拔表达:-----------------使用HP-Socketv2.2.3的应用程序能够安全晋级到HP-Socketv3.0.1是因为重命名了大批量接口、类以至代码文件,由此提高时需求作相应调节------------------------------------------------------------------------------------------------***v2.2.3更新***三番四回ID的数据类型改为‘CONNID’:-----------------1、在SocketHelper.h中定义CONNID数据类型2、应用程序能够把CONNID定义为其期望的门类3、为了有助于移植与爱护,应用程序的其他地方都应有用‘CONNID’类型引用连接ID劳动端Socket组件援救为每一种连接绑定附加数据:-----------------1、IServerSocket和CIocpServer扩展方法Get/SetConnectionExtra(卡塔尔2、通过上述七个措施,应用程序可感到各种连接绑定任性附加数据并把多少得到出来任何更新:-----------------1、放宽CIocpServer的最大IOCP专业线程数目节制2、服务端Socket组件的Disconnect(卡塔尔国方法扩大四个标记参数‘bForce’,提示是或不是强制断开连接3、调治连接ID的变迁法则,制止生成数值为0的连天ID------------------------------------------------------------------------------------------------***v2.2.2更新***优化心跳质量评定相关功效:-----------------1、IServerSocket和IClientSocket的Get/SetKeepAlive提姆es(State of Qatar方法改为Get/SetKeepAliveTime(卡塔尔2、CIocpServer和CClientSocket的暗许KeepAliveTime属性改为50003、CIocpServer和CClientSocket的暗许KeepAliveInterval属性改为3000------------------------------------------------------------------------------------------------***v2.2.1更新***PULL模型支撑:-----------------1、ISocketListener扩大PULL模型数据接纳通告方法OnReceive(dwConnID,int卡塔尔(قطر‎2、扩充PULLSocket接口IPullSocket,该接口的Fetch(dwConnID,pBuffer,iLength卡塔尔国方法用于抓取通信数据Server:-----------------1、服务端Socket接口ISocketServer改名称为IServerSocket2、扩大PULLServerSocket监听器抽象类CPullServerSocketListener3、扩大PULLServerSocket接口IPullServerSocket4、增加PULLServerSocket达成类CIocpPullServerClient:-----------------1、顾客端Socket接口ISocketClient改名称为IClientSocket2、客商端Socket完结类CSocketClient改名叫CClientSocket3、扩大PULLClientSocket监听器抽象类CPullClientSocketListener4、扩张PULLClientSocket接口IPullClientSocket5、增添PULLClientSocket完毕类CPullClientSocket 其它更新:-----------------1、扩展PULLSocket测验程序TestEcho-Pull2、在SocketHelper.h(.cpp卡塔尔国中丰盛若干增加帮衬布局体

图片 1