HP-SOCKET TCP/UDP通信框架库解析
项目概述:
HP-SOCKET是一套通用TCP/UDP通信框架,包括服务器、客户端、Agent组件;其目标是提供高性能、通用性、简易性、可扩展、可定制;
鉴于此,其仅实现基本的通用框架通信、数据收发功能,供上层应用直接简单使用的接口实现;而对于数据包完整性和协议解析等未处理,
也就意味着需要应用层自己处理一些数据包构造或解析等操作;
事实上目前只能支持windows平台;
1. 对于TCP通信模式下:服务器端和Agent均采用的是异步IO模型中的完成端口模型,客户端采用的是就绪IO通告模型中的WSAEventSelect模型;
2. 对于UDP通信模式下:服务器端采用的是异步IO模型中的完成端口模型,客户端和Cast(广播或组播)均采用的是就绪IO通告模型中的WSAEventSelect模型;
以上通信模式下,客户端或广播未采用完成端口模型是考虑到实现复杂性和实际的应用场景需要,当然如果需要均采用完成端口模型也是可以的;
题外话:
Windows平台下目前已有以下几个通信模型:
1. 阻塞模式: 通过基础的socket API函数的实现为最基本的通信方式;
2. 就绪通告IO模型: Select多路复用、WSAAsyncSelect依赖窗口的事件通知、WSAEventSelect关联事件内核对象的事件通知;
3. 异步IO(重叠IO): 事件通告、回调通告、完成端口;
其中各个模型实现复杂度依次提高,性能也依次提高,故性能最好的便是完成端口,事实上完成端口不仅可以用于网络通信,
还可以用于文件或其他涉及到IO相关的场合;各个模式有优缺点,可根据应用场景采用相应的实现模型便可,很多时候可以直接使用已写好的稳定
通信框架而不一定要自己重头开始写,不过,无论怎么样均要根据在项目中的实际需要来综合考虑应该使用什么库或是自己动手去实现;
项目综述:
整体上结构清晰、类层次分明,比较容易学习,此外采用基于事件回调的方式的实现方式,这样控制组件和事件回调数据处理可以分离,便于客户更好
地进行数据处理,而无需要直到太多的细节实现,也便于扩展、实现库功能;基本上该库已封装得很好并提供了C++和C的接口(C接口也只是简单地对C++实现的接口包装)
、便于其他语言封装或扩展(分别封装在HPSocket.h和HPSocket4C.h中,可以看到导出的接口比较多,事实上好在其分别对C++接口和C接口实现各自的解决方案生成不同DLL,
导出的接口数分别约30、460;PS:其实此处一起导出到同一个DLL也是可以的,问题也不大且更方便客户更新库或上层应用,实现共享);
项目主体采用C++实现,结合部分C公共实现部分(此处C++开发方便且易地扩展,对于公共部分功能不适合放在C++类中的均用C实现,以减少类的大小和功能的
集中处理,很好地运用了面向对象程序设计的原则)(不用担心C++性能效率问题)。
HP-SOCKET TCP/UDP通信框架库解析的更多相关文章
- 高性能 TCP & UDP 通信框架 HP-Socket v3.5.3
HP-Socket 是一套通用的高性能 TCP/UDP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++.C#.Del ...
- 高性能 TCP & UDP 通信框架 HP-Socket v3.5.2
HP-Socket 是一套通用的高性能 TCP/UDP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++.C#.Del ...
- 高性能 TCP & UDP 通信框架 HP-Socket v3.5.1
HP-Socket 是一套通用的高性能 TCP/UDP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++.C#.Del ...
- 高性能 TCP & UDP 通信框架 HP-Socket v3.4.1
HP-Socket 是一套通用的高性能 TCP/UDP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++.C#.Del ...
- 高性能 TCP & UDP 通信框架 HP-Socket v3.3.1
HP-Socket 是一套通用的高性能 TCP/UDP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++.C#.Del ...
- 高性能 TCP & UDP 通信框架 HP-Socket v3.2.3
HP-Socket 是一套通用的高性能 TCP/UDP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++.C#.Del ...
- 高性能 TCP & UDP 通信框架 HP-Socket v3.2.2 正式发布
HP-Socket 是一套通用的高性能 TCP/UDP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++.C#.Del ...
- 高性能 TCP & UDP 通信框架 HP-Socket v3.2.3 正式宣布
HP-Socket 是一套通用的高性能 TCP/UDP 通信框架,包括服务端组件.client组件和 Agent 组件.广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++.C#. ...
- 高性能 TCP & UDP 通信框架 HP-Socket v3.2.2 正式公布
HP-Socket 是一套通用的高性能 TCP/UDP 通信框架,包括服务端组件.client组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++.C#. ...
随机推荐
- ParamTest
package fourth; public class ParamTest { public static void main(String[] args) { // TODO Auto-gener ...
- java对象与XML相互转化
起因 最近在公司做了一次webservice相关的任务,其中我最敢兴趣的就是webservice接受到XML对应的流以后是如何方便的转化成java对象,而java对象又是如何生成对应的XML的. 目的 ...
- redis-window 集群配置
参考文章: 1.http://www.cnblogs.com/zr520/p/5057141.html (主从配置) 2.http://www.cnblogs.com/lori/p/5825691.h ...
- webSphere内存溢出
有一个做了很长时间的项目,是用websphere做生产环境的,可是一旦加载的项目过多,webSphere就很傲娇的内存溢出,这是一个折腾了公司里某个前辈很久很久的问题,因为是测试版,所以各种官方文档说 ...
- 360浏览器遇到文档模式是IE7的解决办法
这段时间遇到了360浏览器在加载java项目时,默认的文档模式是IE7,使得网页加载下拉框出现问题. 解决的方法是: 在显示的jsp页面加上 <meta http-equiv="X-U ...
- Apache服务器安装过程及问题的解决(for windows system32bit)
在使用Hbuilder设计网站时,在制作本站搜索时,用到了Php文件,而Hbuilder的内置web服务器不支持php的解析, 所以需要安装配置外部服务器,有多个选择,我安装的apache服务器,并遇 ...
- JavaScript - 正则表达式
正则表达式的大致匹配过程是:依次拿出表达式和文本中的字符比较,如果每一个字符都能匹配,则匹配成功:一旦有匹配不成功的字符则匹配失败. 正则表达式通常用于在文本中查找匹配的字符串.Python里数量词默 ...
- jQuery动画slideUp()不正常位移原因
用jQuery写一个列表.当点击底部按钮时,列表中序号超过6的项目可以向下拉出或者向上收起. 用slideUp(),遇见一个问题.展开列表项会产生不正常位移,如下图所示.动画结束发生位移. 出现这个问 ...
- CSS3 Media Queries 实现响应式设计
在 CSS2 中,你可以为不同的媒介设备(如屏幕.打印机)指定专用的样式表,而现在借助 CSS3 的 Media Queries 特性,可以更为有效的实现这个功能.你可以为媒介类型添加某些条件,检测设 ...
- Android之Linearlayouy线性布局
写了个小例子xml代码如下: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout x ...