更新整理本人所有博文中提供的代码与工具(C++,2014.01)

C++语言 码拜 10年前 (2015-05-11) 983次浏览 0个评论
 

  为了更方便地管理博文中涉及的各种代码与工具资源,现在把这些资源迁移到 Google Code 中,有兴趣者可前往下载。

C++

一、《高性能 Socket 组件 HP-Socket v3.1.2 正式发布
   《基于 IOCP 的通用异步 Windows Socket TCP 高性能服务端组件的设计与实现
   《通用异步 Windows Socket TCP 客户端组件的设计与实现

  摘要:编写 Socket 服务端/客户端其实并不困难,Windows 提供了6种 I/O 通信模型供大家选择。但本座看过很多客户端程序都把 Socket 通信和业务逻辑混在一起,剪不断理还乱。每个程序都 Copy / Parse 类似的代码再进行修改,实在有点情何以堪。因此本座利用一些闲暇时光写了一个基于 IOCP 的通用异步 Windows Socket TCP 高性能服务端组件和一个通用异步 Windows Socket TCP 客户端组件供各位看官参详参详,希望能激发下大家的灵感。

  HP-Socket 是一套通用的高性能 Windows Socket 组件包,包含服务端组件(IOCP 模型)和客户端组件(Event Select 模型),广泛适用于 Windows 平台的 TCP 通信系统。HP-Socket 对通信层实现完全封装,上层应用不必关注通信层的任何细节;HP-Socket 提供基于事件通知模型的 API 接口,能非常简单高效地整合到各类应用程序中;另外,为了让大家能更方便的学习 HP-Socket,特此精心制作了一个功能测试示例(Test Echo)和一个性能测试示例(Test Echo-PFM),用户可以通过这两个测试示例入手,迅速掌握组件的设计思想和使用方法。

  资源下载地址:请访问项目主页 ^_*

二、《Windows C++ 应用程序通用日志组件(组件及测试程序下载)

  摘要:编写一个通用的日志组件应该着重考虑三个方面:功能、可用性和性能。下面,本座详细说明在设计日志组件时对这些方面问题的考虑:

  1、功能:本日志组件的目的是满足大多数应用程序记录日志的需求 —— 把日志输出到文件或发送到应用程序中,并不提供一些复杂但不常用的功能
  2、可用性:本日志组件着重考虑了可用性,尽量让使用者用起来觉得简便、舒心
  3、性能:性能是组件是否值得使用的硬指标,本组件从设计到编码的过程都尽量考虑到性能优化

  资源下载地址:请访问项目主页 ^_*

三、《如何养成良好的 C++ 编程习惯(一)—— 内存管理

  摘要:说起 C/C++ 的内存管理似乎令人望而生畏,满屏的 new / delete / malloc / free,OutPut 窗口无尽的 Memory Leak 警告,程序诡异的 0X00000004 指针异常,仿佛回到那一年我们一起哭过的日子,你 Hold 得住吗?其实,现实并没有你想的那么糟糕。只要你付出一点点,花一点点心思,没错!就一点点而已 —— 用 C++ 类封装内存访问,就会解决你大部分的烦恼,让你受益终身。以 Windows 程序为例,主要有以下几种内存管理方式:

  1、虚拟内存(Virtual Memory)
  2、默认堆和私有堆(Process Heap & Private Heap)
  3、内存映射文件(File Mapping)
  4、进程堆栈(Heap,其实就是用 malloc() 或 默认的 new 操作符在 Process Heap 里一小块一小块地割肉 ^_^)
  5、栈(Stack,内存由调用者或被调用者自动管理)

  资源下载地址:https://code.google.com/p/ldcsaa/downloads/list(源代码在 vc-common-src-2.3.2.zip 的 Common/Src 目录中)

 四、《实现 Win32 程序的消息映射宏(类似 MFC )

  摘要:对于消息映射宏,不用多说了,用过 MFC 的人都很清楚。但目前有不少程序由于各种原因并没有使用 MFC,所以本帖讨论一下如何在 Win32 程序中实现类似MFC的消息映射宏。其实 Windows 的头文件 “WindowsX.h”(注意:不是“Windows.h”) 中提供了一些有用的宏来帮助我们实现消息映射。本座是也基于这个头文件实现消息映射。

  资源下载地址:https://code.google.com/p/ldcsaa/downloads/list(源代码在 vc-common-src-2.3.2.zip 的 Common/Src/Win32Helper.h 文件中)

五、《用宏实现 C++ Singleton 模式

  摘要:Singleton 设计模式应用非常广泛,实现起来也很简单,无非是私有化若干个构造函数,“operator =” 操作符,以及提供一个静态的创建和销毁方法。但是对每个类都写这些雷同的代码是本座不能容忍的,因此,本座使用宏把整个 Singleton 模式封装起来,无论是类的定义还是类的使用的极其简单。

  资源下载地址:https://code.google.com/p/ldcsaa/downloads/list (源代码在 vc-common-src-2.3.2.zip 的 Common/Src/Singleton.h 文件中)

六、《C++ 封装私有堆(Private Heap)

  摘要:Private Heap 是 Windows 提供的一种内存内存机制,对于那些需要频繁分配和释放动态内存的应用程序来说,Private Heap 是提高应用程序性能的一大法宝,使用它能降低 new / malloc 的调用排队竞争以及内存空洞。

  资源下载地址:https://code.google.com/p/ldcsaa/downloads/list (源代码在 vc-common-src-2.3.2.zip 的 Common/Src/PrivateHeap.h 文件中)

七、《基于 crt debug 实现的 Windows 程序内存泄漏检测工具

  摘要:Windows 程序内存泄漏检测是一项十分重要的工作,基于 GUI 的应用程序通常在调试结束时也有内存泄漏报告,但这个报告的信息不全面,不能定位到产生泄漏的具体行号。其实自己实现一个内存泄漏检测工具是一件非常简单的事情,但看过网上写的很多例子,普遍存在两种问题:

    a、要么考虑不周全,一种环境下能用,而在另外一种环境下却不能很好工作,或者漏洞报告的输出方式不合理。
    b、要么过于保守,例如:完全没有必要在 _malloc_dbg() 和 _free_dbg() 的调用前后用 CriticalSection 进行保护(跟踪一下多线程环境下 new 和 malloc 的代码就会明白)。

  资源下载地址:https://code.google.com/p/ldcsaa/downloads/list(源代码在 vc-common-src-2.3.2.zip 的 Common/Src/debug/win32_crtdbg.h 文件中)

40分
都是干货~~ 先收了,谢谢~~~
收藏
楼主强大。。。
mark 日后再看
推荐个。。。
求github,google那边访问有点忧伤。。
引用 7 楼 jssd64 的回复:

求github,google那边访问有点忧伤。。

你去掉https中的s试试~~

mark
给力!
都是好东西啊
看看说明,就感觉楼主很牛X
楼主牛人啊。。CPP/JAVA都牛的高手。。
学习一下。。
haotongzhi fenxiang
HP-Socket的Pull模型挺有意思的,不用自己封解包~
要是能提供一些其他语言调用HPSocket4C.dll的例子就更好了~~
不错,值得学习
LZ 要是能出个详细的文档就更牛逼了

循序渐进的,从最简单的开始,一点一点增加,更进,

最后集结成册,出书,我肯定买 呵呵

现在这样的,虽然代码都公布了,也不是一般人能全看明白,,

感觉很吃力》。。。。。。

要是出书,这本书应该很有搞头的,内容,章节,合理铺垫好,应该是网络编程的一个经典参考书

引用 23 楼 wanyeye 的回复:

LZ 要是能出个详细的文档就更牛逼了

循序渐进的,从最简单的开始,一点一点增加,更进,

最后集结成册,出书,我肯定买 呵呵

现在这样的,虽然代码都公布了,也不是一般人能全看明白,,

感觉很吃力》。。。。。。

要是出书,这本书应该很有搞头的,内容,章节,合理铺垫好,应该是网络编程的一个经典参考书

噻,如此看得起本座呀~~ 

引用 24 楼 DuMiYue 的回复:

噻,如此看得起本座呀~~ 

写成step by step 风格的,搭积木那样的,把你这个开源的框架给说透彻,个人觉得是非常有吸引力的一部著作啦

以SOCKET为主线,由浅入深,深入浅出的把框架给介绍清楚。
在逐步加深的时候,肯定会牵扯到其他技术,对于这些应该也详细介绍,但不能破坏SOCKET主线,个人以为,应该以索引 附录的方式,把行文过程中牵扯到的其他技术,插到书的后面介绍…

总之一句话,找个好编辑,花些时间,经典参考或畅销经典,还是有希望的

引用 25 楼 wanyeye 的回复:
Quote: 引用 24 楼 DuMiYue 的回复:

噻,如此看得起本座呀~~ 

写成step by step 风格的,搭积木那样的,把你这个开源的框架给说透彻,个人觉得是非常有吸引力的一部著作啦

以SOCKET为主线,由浅入深,深入浅出的把框架给介绍清楚。
在逐步加深的时候,肯定会牵扯到其他技术,对于这些应该也详细介绍,但不能破坏SOCKET主线,个人以为,应该以索引 附录的方式,把行文过程中牵扯到的其他技术,插到书的后面介绍…

总之一句话,找个好编辑,花些时间,经典参考或畅销经典,还是有希望的

感谢支持~

Mark , ,,,,,,
虽然现在还是学的基础内容,这些以后可以学习一下。
膜拜 赞一个 顶一个
有心人
只会UNIX下,不会WIN下编程
,很强大…
引用 32 楼 chenhui880412 的回复:

,很强大…

下载下来,用起 ~~

各种不懂,mark一下,飘过~
mark,强大,支持下,高手 
感谢楼主分享!
如果有project参考那就棒呆了
引用 38 楼 bob76012 的回复:

如果有project参考那就棒呆了

都带有测试工程的吧,没看到?!

赞一个

mark 

好东西,先收藏着
Thanks a lot 。。。
好东西,先收藏了,谢谢楼主
大哥 ,我想下载hp socket,没有找到位置啊,oschina上的下载链接到jessma  jessma上的下载链接到oschina,到底在哪儿啊。。能不能截图我看看啊?
引用 47 楼 lyvvv 的回复:

大哥 ,我想下载hp socket,没有找到位置啊,oschina上的下载链接到jessma  jessma上的下载链接到oschina,到底在哪儿啊。。能不能截图我看看啊?

https://code.google.com/p/ldcsaa/downloads/list

收藏了!
楼主强大!

引用 49 楼 huoqingna2332 的回复:

收藏了!
楼主强大!

顶一下吧,别沉了。。。

引用 46 楼 huan521 的回复:

好东西,先收藏了,谢谢楼主

up up up ~~

引用 46 楼 huan521 的回复:

好东西,先收藏了,谢谢楼主

快快用起来~~~

多谢分享。。
引用 53 楼 huangxiangbo316 的回复:

多谢分享。。

顶一下ba!
引用 56 楼 china_jeffery 的回复:

you are welcome …

引用 55 楼 shenren911 的回复:

顶一下ba!

必须的!!

都是干货,必须收藏!
收藏学习,以后分析分析!
堆栈是Heap?
引用 61 楼 FrankHB1989 的回复:

堆栈是Heap?

堆:Heap,栈:Stack ~

牛逼,果断顶起来!
引用 63 楼 fq553165833 的回复:

牛逼,果断顶起来!

打算什么时候试用?

收藏了O(∩_∩)O哈哈~
引用 65 楼 lzpng 的回复:

收藏了O(∩_∩)O哈哈~

用起来才是王道~

好东西啊,顶一下~~
引用 67 楼 tmWin32 的回复:

好东西啊,顶一下~~

THX~~~

感谢楼主无私奉献
引用 69 楼 ojc520520 的回复:

感谢楼主无私奉献

THX~~~~~~~~

引用 69 楼 ojc520520 的回复:

感谢楼主无私奉献

会不定期更新,敬请关注~~

你之前有上传过MSDN的示例代码么。。。怎么我在MSDN上看到的和你这个整体完全一毛一样。。。
帮LZ顶一下
引用 72 楼 stacksg 的回复:

你之前有上传过MSDN的示例代码么。。。怎么我在MSDN上看到的和你这个整体完全一毛一样。。。

MSDN ?没有吧!

谢谢了。。。
楼主大神,姿势不够,mark个慢慢看
引用 76 楼 cocodada 的回复:

楼主大神,姿势不够,mark个慢慢看

只马克,不幸福~~~~

收藏了,好好看。
沉了?~~~~
楼主是个帅锅。
MARK!~~~~
好帖子,有代码最好了
引用 82 楼 titer1 的回复:

好帖子,有代码最好了

高性能 Socket 组件 HP-Socket v3.2.1-RC1 发布,敬请关注:
http://bbs.csdn.net/topics/390763397

很有帮助,楼主高手。
mark 楼主辛苦了
收藏了!
楼主强大!
高性能 Socket 组件 HP-Socket v3.2.1-RC4 发布
http://www.oschina.net/news/51711/hp-socket-v3-2-1-rc4

更新整理本人所有博文中提供的代码与工具(C++,2014.01)

好,收了…
顶一下!
引用 89 楼 melos 的回复:

顶一下!

再顶顶~~

打不开了
顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶
楼主强大
lz真心好人

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明更新整理本人所有博文中提供的代码与工具(C++,2014.01)
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!