﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-~怪^_*兽~-随笔分类-软件设计</title><link>http://cppblog.com/ldcsaa/category/19111.html</link><description>虚荣锁身躯 心灵给酒醉 脆弱人类 懒问何为对
&lt;br&gt;&lt;font color="#CC0000"&gt;（怪兽乐园Q群：&lt;a target="_blank" href="http://jq.qq.com/?_wv=1027&amp;k=28lgXyB"&gt;&lt;strong&gt;75375912&lt;/strong&gt;&lt;/a&gt;）&lt;/font&gt;</description><language>zh-cn</language><lastBuildDate>Tue, 18 Jul 2017 06:13:14 GMT</lastBuildDate><pubDate>Tue, 18 Jul 2017 06:13:14 GMT</pubDate><ttl>60</ttl><item><title>高性能 TCP &amp; HTTP 通信框架 HP-Socket v4.3.1</title><link>http://www.cppblog.com/ldcsaa/archive/2017/07/17/215112.html</link><dc:creator>~怪^_*兽~</dc:creator><author>~怪^_*兽~</author><pubDate>Mon, 17 Jul 2017 02:03:00 GMT</pubDate><guid>http://www.cppblog.com/ldcsaa/archive/2017/07/17/215112.html</guid><wfw:comment>http://www.cppblog.com/ldcsaa/comments/215112.html</wfw:comment><comments>http://www.cppblog.com/ldcsaa/archive/2017/07/17/215112.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/ldcsaa/comments/commentRss/215112.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ldcsaa/services/trackbacks/215112.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: HP-Socket 是一套通用的高性能 TCP/UDP/HTTP 通信框架，包含服务端组件、客户端组件和 Agent 组件，广泛适用于各种不同应用场景的 TCP/UDP/HTTP 通信系统，提供 C/C++、C#、Delphi、E（易语言）、Java、Python 等编程语言接口。HP-Socket 对通信层实现完全封装，应用程序不必关注通信层的任何细节；HP-Socket 提供基于事件通知模型的 API 接口，能非常简单高效地整合到新旧应用程序中。&nbsp;&nbsp;<a href='http://www.cppblog.com/ldcsaa/archive/2017/07/17/215112.html'>阅读全文</a><img src ="http://www.cppblog.com/ldcsaa/aggbug/215112.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ldcsaa/" target="_blank">~怪^_*兽~</a> 2017-07-17 10:03 <a href="http://www.cppblog.com/ldcsaa/archive/2017/07/17/215112.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>高性能 TCP/UDP/HTTP 通信框架 HP-Socket v4.1.3</title><link>http://www.cppblog.com/ldcsaa/archive/2017/01/18/214607.html</link><dc:creator>~怪^_*兽~</dc:creator><author>~怪^_*兽~</author><pubDate>Wed, 18 Jan 2017 06:24:00 GMT</pubDate><guid>http://www.cppblog.com/ldcsaa/archive/2017/01/18/214607.html</guid><wfw:comment>http://www.cppblog.com/ldcsaa/comments/214607.html</wfw:comment><comments>http://www.cppblog.com/ldcsaa/archive/2017/01/18/214607.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/ldcsaa/comments/commentRss/214607.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ldcsaa/services/trackbacks/214607.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: HP-Socket 是一套通用的高性能 TCP/UDP/HTTP 通信框架，包含服务端组件、客户端组件和 Agent 组件，广泛适用于各种不同应用场景的 TCP/UDP/HTTP 通信系统，提供 C/C++、C#、Delphi、E（易语言）、Java、Python 等编程语言接口。HP-Socket 对通信层实现完全封装，应用程序不必关注通信层的任何细节；HP-Socket 提供基于事件通知模型的 API 接口，能非常简单高效地整合到新旧应用程序中。&nbsp;&nbsp;<a href='http://www.cppblog.com/ldcsaa/archive/2017/01/18/214607.html'>阅读全文</a><img src ="http://www.cppblog.com/ldcsaa/aggbug/214607.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ldcsaa/" target="_blank">~怪^_*兽~</a> 2017-01-18 14:24 <a href="http://www.cppblog.com/ldcsaa/archive/2017/01/18/214607.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>高性能 TCP &amp; UDP 通信框架 HP-Socket v4.1.2</title><link>http://www.cppblog.com/ldcsaa/archive/2016/12/27/214560.html</link><dc:creator>~怪^_*兽~</dc:creator><author>~怪^_*兽~</author><pubDate>Tue, 27 Dec 2016 11:21:00 GMT</pubDate><guid>http://www.cppblog.com/ldcsaa/archive/2016/12/27/214560.html</guid><wfw:comment>http://www.cppblog.com/ldcsaa/comments/214560.html</wfw:comment><comments>http://www.cppblog.com/ldcsaa/archive/2016/12/27/214560.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/ldcsaa/comments/commentRss/214560.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ldcsaa/services/trackbacks/214560.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: HP-Socket 是一套通用的高性能 TCP/UDP/HTTP 通信框架，包含服务端组件、客户端组件和 Agent 组件，广泛适用于各种不同应用场景的 TCP/UDP/HTTP 通信系统，提供 C/C++、C#、Delphi、E（易语言）、Java、Python 等编程语言接口。HP-Socket 对通信层实现完全封装，应用程序不必关注通信层的任何细节；HP-Socket 提供基于事件通知模型的 API 接口，能非常简单高效地整合到新旧应用程序中。&nbsp;&nbsp;<a href='http://www.cppblog.com/ldcsaa/archive/2016/12/27/214560.html'>阅读全文</a><img src ="http://www.cppblog.com/ldcsaa/aggbug/214560.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ldcsaa/" target="_blank">~怪^_*兽~</a> 2016-12-27 19:21 <a href="http://www.cppblog.com/ldcsaa/archive/2016/12/27/214560.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>高性能 TCP &amp; UDP 通信框架 HP-Socket v3.3.1 正式发布</title><link>http://www.cppblog.com/ldcsaa/archive/2015/02/03/209711.html</link><dc:creator>~怪^_*兽~</dc:creator><author>~怪^_*兽~</author><pubDate>Mon, 02 Feb 2015 19:07:00 GMT</pubDate><guid>http://www.cppblog.com/ldcsaa/archive/2015/02/03/209711.html</guid><wfw:comment>http://www.cppblog.com/ldcsaa/comments/209711.html</wfw:comment><comments>http://www.cppblog.com/ldcsaa/archive/2015/02/03/209711.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/ldcsaa/comments/commentRss/209711.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ldcsaa/services/trackbacks/209711.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: HP-Socket 是一套通用的高性能 TCP/UDP 通信框架，包含服务端组件、客户端组件和 Agent 组件，广泛适用于各种不同应用场景的 TCP/UDP 通信系统，提供 C/C++、C#、Delphi、E（易语言）、Java、Python 等编程语言接口。HP-Socket 对通信层实现完全封装，应用程序不必关注通信层的任何细节；HP-Socket 提供基于事件通知模型的 API 接口，能非常简单高效地整合到新旧应用程序中。&nbsp;&nbsp;<a href='http://www.cppblog.com/ldcsaa/archive/2015/02/03/209711.html'>阅读全文</a><img src ="http://www.cppblog.com/ldcsaa/aggbug/209711.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ldcsaa/" target="_blank">~怪^_*兽~</a> 2015-02-03 03:07 <a href="http://www.cppblog.com/ldcsaa/archive/2015/02/03/209711.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>高性能 TCP &amp; UDP 通信框架 HP-Socket v3.2.3 正式发布</title><link>http://www.cppblog.com/ldcsaa/archive/2014/08/13/207991.html</link><dc:creator>~怪^_*兽~</dc:creator><author>~怪^_*兽~</author><pubDate>Wed, 13 Aug 2014 05:50:00 GMT</pubDate><guid>http://www.cppblog.com/ldcsaa/archive/2014/08/13/207991.html</guid><wfw:comment>http://www.cppblog.com/ldcsaa/comments/207991.html</wfw:comment><comments>http://www.cppblog.com/ldcsaa/archive/2014/08/13/207991.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/ldcsaa/comments/commentRss/207991.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ldcsaa/services/trackbacks/207991.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: HP-Socket 是一套通用的高性能 TCP/UDP 通信框架，包含服务端组件、客户端组件和 Agent 组件，广泛适用于各种不同应用场景的 TCP/UDP 通信系统，提供 C/C++、C#、Delphi、E（易语言）、Java、Python 等编程语言接口。HP-Socket 对通信层实现完全封装，应用程序不必关注通信层的任何细节；HP-Socket 提供基于事件通知模型的 API 接口，能非常简单高效地整合到新旧应用程序中。&nbsp;&nbsp;<a href='http://www.cppblog.com/ldcsaa/archive/2014/08/13/207991.html'>阅读全文</a><img src ="http://www.cppblog.com/ldcsaa/aggbug/207991.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ldcsaa/" target="_blank">~怪^_*兽~</a> 2014-08-13 13:50 <a href="http://www.cppblog.com/ldcsaa/archive/2014/08/13/207991.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>高性能 TCP &amp; UDP 通信框架 HP-Socket v3.2.2 正式发布</title><link>http://www.cppblog.com/ldcsaa/archive/2014/07/08/207580.html</link><dc:creator>~怪^_*兽~</dc:creator><author>~怪^_*兽~</author><pubDate>Tue, 08 Jul 2014 14:33:00 GMT</pubDate><guid>http://www.cppblog.com/ldcsaa/archive/2014/07/08/207580.html</guid><wfw:comment>http://www.cppblog.com/ldcsaa/comments/207580.html</wfw:comment><comments>http://www.cppblog.com/ldcsaa/archive/2014/07/08/207580.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/ldcsaa/comments/commentRss/207580.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ldcsaa/services/trackbacks/207580.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: HP-Socket 是一套通用的高性能 TCP/UDP 通信框架，包含服务端组件、客户端组件和 Agent 组件，广泛适用于各种不同应用场景的 TCP/UDP 通信系统，提供 C/C++、C#、Delphi、E（易语言）、Java、Python 等编程语言接口。HP-Socket 对通信层实现完全封装，应用程序不必关注通信层的任何细节；HP-Socket 提供基于事件通知模型的 API 接口，能非常简单高效地整合到新旧应用程序中。&nbsp;&nbsp;<a href='http://www.cppblog.com/ldcsaa/archive/2014/07/08/207580.html'>阅读全文</a><img src ="http://www.cppblog.com/ldcsaa/aggbug/207580.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ldcsaa/" target="_blank">~怪^_*兽~</a> 2014-07-08 22:33 <a href="http://www.cppblog.com/ldcsaa/archive/2014/07/08/207580.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>高性能 Socket 组件 HP-Socket v3.2.1 正式发布</title><link>http://www.cppblog.com/ldcsaa/archive/2014/06/05/207196.html</link><dc:creator>~怪^_*兽~</dc:creator><author>~怪^_*兽~</author><pubDate>Thu, 05 Jun 2014 03:30:00 GMT</pubDate><guid>http://www.cppblog.com/ldcsaa/archive/2014/06/05/207196.html</guid><wfw:comment>http://www.cppblog.com/ldcsaa/comments/207196.html</wfw:comment><comments>http://www.cppblog.com/ldcsaa/archive/2014/06/05/207196.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/ldcsaa/comments/commentRss/207196.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ldcsaa/services/trackbacks/207196.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: HP-Socket 是一套通用的高性能 TCP/UDP Socket 组件，包含服务端组件、客户端组件和 Agent 组件，广泛适用于各种不同应用场景的 TCP/UDP 通信系统，提供 C/C++、C#、Delphi、E（易语言）、Java、Python 等编程语言接口。HP-Socket 对通信层实现完全封装，上层应用不必关注通信层的任何细节；HP-Socket 提供基于事件通知模型的 API 接口，能非常简单高效地整合到新旧应用程序中。为了让使用者能方便快速地学习和使用 HP-Socket，迅速掌握组件的设计思想和使用方法，特此精心制作了大量 Demo 示例，包括 PUSH 模型示例、PULL模型示例和性能测试示例等。HP-Socket 目前运行在 Windows 平台，将来会实现跨平台支持。&nbsp;&nbsp;<a href='http://www.cppblog.com/ldcsaa/archive/2014/06/05/207196.html'>阅读全文</a><img src ="http://www.cppblog.com/ldcsaa/aggbug/207196.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ldcsaa/" target="_blank">~怪^_*兽~</a> 2014-06-05 11:30 <a href="http://www.cppblog.com/ldcsaa/archive/2014/06/05/207196.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>高性能 Socket 组件 HP-Socket v3.1.3 正式发布</title><link>http://www.cppblog.com/ldcsaa/archive/2014/03/31/206403.html</link><dc:creator>~怪^_*兽~</dc:creator><author>~怪^_*兽~</author><pubDate>Mon, 31 Mar 2014 03:03:00 GMT</pubDate><guid>http://www.cppblog.com/ldcsaa/archive/2014/03/31/206403.html</guid><wfw:comment>http://www.cppblog.com/ldcsaa/comments/206403.html</wfw:comment><comments>http://www.cppblog.com/ldcsaa/archive/2014/03/31/206403.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/ldcsaa/comments/commentRss/206403.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ldcsaa/services/trackbacks/206403.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: HP-Socket 是一套通用的高性能 Windows Socket 组件，提供服务端组件（IOCP 模型）和客户端组件（Event Select 模型），广泛适用于 Windows 平台的 TCP/UDP 通信系统。HP-Socket 对通信层实现完全封装，上层应用不必关注通信层的任何细节；HP-Socket 提供基于事件通知模型的 API 接口，能非常简单高效地整合到各类应用程序中；另外，为了让大家能更方便的学习 HP-Socket，特此精心制作了功能测试示例（Test Echo）、性能测试示例（Test Echo-PFM）、PULL 模型测试示例（Test Echo-Pull） 和 UDP 测试示例（Test Echo-UDP），用户可以通过这几个测试示例入手，迅速掌握组件的设计思想和使用方法。&nbsp;&nbsp;<a href='http://www.cppblog.com/ldcsaa/archive/2014/03/31/206403.html'>阅读全文</a><img src ="http://www.cppblog.com/ldcsaa/aggbug/206403.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ldcsaa/" target="_blank">~怪^_*兽~</a> 2014-03-31 11:03 <a href="http://www.cppblog.com/ldcsaa/archive/2014/03/31/206403.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【新年呈献】高性能 Socket 组件 HP-Socket v3.1.2 正式发布</title><link>http://www.cppblog.com/ldcsaa/archive/2014/01/14/205332.html</link><dc:creator>~怪^_*兽~</dc:creator><author>~怪^_*兽~</author><pubDate>Tue, 14 Jan 2014 15:23:00 GMT</pubDate><guid>http://www.cppblog.com/ldcsaa/archive/2014/01/14/205332.html</guid><wfw:comment>http://www.cppblog.com/ldcsaa/comments/205332.html</wfw:comment><comments>http://www.cppblog.com/ldcsaa/archive/2014/01/14/205332.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/ldcsaa/comments/commentRss/205332.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ldcsaa/services/trackbacks/205332.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: HP-Socket 是一套通用的高性能 Windows Socket 组件包，包含服务端组件（IOCP 模型）和客户端组件（Event Select 模型），广泛适用于 Windows 平台的 TCP/UDP 通信系统。HP-Socket 对通信层实现完全封装，上层应用不必关注通信层的任何细节；HP-Socket 提供基于事件通知模型的 API 接口，能非常简单高效地整合到各类应用程序中；另外，为了让大家能更方便的学习 HP-Socket，特此精心制作了功能测试示例（Test Echo）、性能测试示例（Test Echo-PFM）、PULL 模型测试示例（Test Echo-Pull） 和 UDP 测试示例（Test Echo-UDP），用户可以通过这几个测试示例入手，迅速掌握组件的设计思想和使用方法。&nbsp;&nbsp;<a href='http://www.cppblog.com/ldcsaa/archive/2014/01/14/205332.html'>阅读全文</a><img src ="http://www.cppblog.com/ldcsaa/aggbug/205332.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ldcsaa/" target="_blank">~怪^_*兽~</a> 2014-01-14 23:23 <a href="http://www.cppblog.com/ldcsaa/archive/2014/01/14/205332.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【圣诞呈献】高性能 Socket 组件 HP-Socket v3.1.1 正式发布</title><link>http://www.cppblog.com/ldcsaa/archive/2013/12/25/205004.html</link><dc:creator>~怪^_*兽~</dc:creator><author>~怪^_*兽~</author><pubDate>Wed, 25 Dec 2013 03:28:00 GMT</pubDate><guid>http://www.cppblog.com/ldcsaa/archive/2013/12/25/205004.html</guid><wfw:comment>http://www.cppblog.com/ldcsaa/comments/205004.html</wfw:comment><comments>http://www.cppblog.com/ldcsaa/archive/2013/12/25/205004.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/ldcsaa/comments/commentRss/205004.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ldcsaa/services/trackbacks/205004.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: HP-Socket 是一套通用的高性能 Windows Socket 组件包，包含服务端组件（IOCP 模型）和客户端组件（Event Select 模型），广泛适用于 Windows 平台的 TCP/UDP 通信系统。HP-Socket 对通信层实现完全封装，上层应用不必关注通信层的任何细节；HP-Socket 提供基于事件通知模型的 API 接口，能非常简单高效地整合到各类应用程序中；另外，为了让大家能更方便的学习 HP-Socket，特此精心制作了功能测试示例（Test Echo）、性能测试示例（Test Echo-PFM）、PULL 模型测试示例（Test Echo-Pull） 和 UDP 测试示例（Test Echo-UDP），用户可以通过这几个测试示例入手，迅速掌握组件的设计思想和使用方法。&nbsp;&nbsp;<a href='http://www.cppblog.com/ldcsaa/archive/2013/12/25/205004.html'>阅读全文</a><img src ="http://www.cppblog.com/ldcsaa/aggbug/205004.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ldcsaa/" target="_blank">~怪^_*兽~</a> 2013-12-25 11:28 <a href="http://www.cppblog.com/ldcsaa/archive/2013/12/25/205004.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>更新整理本人所有博文中提供的代码与工具（C++，2013.12）</title><link>http://www.cppblog.com/ldcsaa/archive/2013/11/27/204469.html</link><dc:creator>~怪^_*兽~</dc:creator><author>~怪^_*兽~</author><pubDate>Wed, 27 Nov 2013 04:42:00 GMT</pubDate><guid>http://www.cppblog.com/ldcsaa/archive/2013/11/27/204469.html</guid><wfw:comment>http://www.cppblog.com/ldcsaa/comments/204469.html</wfw:comment><comments>http://www.cppblog.com/ldcsaa/archive/2013/11/27/204469.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/ldcsaa/comments/commentRss/204469.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ldcsaa/services/trackbacks/204469.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 为了更方便地管理博文中涉及的各种代码与工具资源，现在把这些资源迁移到 Google Code 中。&nbsp;&nbsp;<a href='http://www.cppblog.com/ldcsaa/archive/2013/11/27/204469.html'>阅读全文</a><img src ="http://www.cppblog.com/ldcsaa/aggbug/204469.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ldcsaa/" target="_blank">~怪^_*兽~</a> 2013-11-27 12:42 <a href="http://www.cppblog.com/ldcsaa/archive/2013/11/27/204469.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>高性能 Windows Socket 组件 HP-Socket v3.0.2 正式发布</title><link>http://www.cppblog.com/ldcsaa/archive/2013/11/26/204460.html</link><dc:creator>~怪^_*兽~</dc:creator><author>~怪^_*兽~</author><pubDate>Tue, 26 Nov 2013 08:43:00 GMT</pubDate><guid>http://www.cppblog.com/ldcsaa/archive/2013/11/26/204460.html</guid><wfw:comment>http://www.cppblog.com/ldcsaa/comments/204460.html</wfw:comment><comments>http://www.cppblog.com/ldcsaa/archive/2013/11/26/204460.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/ldcsaa/comments/commentRss/204460.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ldcsaa/services/trackbacks/204460.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: HP-Socket 是一套通用的高性能 Windows Socket 组件包，包含服务端组件（IOCP 模型）和客户端组件（Event Select 模型），广泛适用于 Windows 平台的 TCP/UDP 通信系统。HP-Socket 对通信层实现完全封装，上层应用不必关注通信层的任何细节；HP-Socket 提供基于事件通知模型的 API 接口，能非常简单高效地整合到各类应用程序中；另外，为了让大家能更方便的学习 HP-Socket，特此精心制作了功能测试示例（Test Echo）、性能测试示例（Test Echo-PFM）、PULL 模型测试示例（Test Echo-Pull） 和 UDP 测试示例（Test Echo-UDP），用户可以通过这几个测试示例入手，迅速掌握组件的设计思想和使用方法。&nbsp;&nbsp;<a href='http://www.cppblog.com/ldcsaa/archive/2013/11/26/204460.html'>阅读全文</a><img src ="http://www.cppblog.com/ldcsaa/aggbug/204460.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ldcsaa/" target="_blank">~怪^_*兽~</a> 2013-11-26 16:43 <a href="http://www.cppblog.com/ldcsaa/archive/2013/11/26/204460.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>高性能 Windows Socket 组件 HP-Socket v3.0.1 正式发布</title><link>http://www.cppblog.com/ldcsaa/archive/2013/10/29/203957.html</link><dc:creator>~怪^_*兽~</dc:creator><author>~怪^_*兽~</author><pubDate>Mon, 28 Oct 2013 18:35:00 GMT</pubDate><guid>http://www.cppblog.com/ldcsaa/archive/2013/10/29/203957.html</guid><wfw:comment>http://www.cppblog.com/ldcsaa/comments/203957.html</wfw:comment><comments>http://www.cppblog.com/ldcsaa/archive/2013/10/29/203957.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.cppblog.com/ldcsaa/comments/commentRss/203957.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ldcsaa/services/trackbacks/203957.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: HP-Socket 是一套通用的高性能 Windows Socket 组件包，包含服务端组件（IOCP 模型）和客户端组件（Event Select 模型），广泛适用于 Windows 平台的 TCP/UDP 通信系统。HP-Socket 对通信层实现完全封装，上层应用不必关注通信层的任何细节；HP-Socket 提供基于事件通知模型的 API 接口，能非常简单高效地整合到各类应用程序中；另外，为了让大家能更方便的学习 HP-Socket，特此精心制作了功能测试示例（Test Echo）性能测试示例（Test Echo-PFM）PULL 模型测试示例（Test Echo-Pull） 和 UDP 测试示例（Test Echo-UDP），用户可以通过这几个测试示例入手，迅速掌握组件的设计思想和使用方法。&nbsp;&nbsp;<a href='http://www.cppblog.com/ldcsaa/archive/2013/10/29/203957.html'>阅读全文</a><img src ="http://www.cppblog.com/ldcsaa/aggbug/203957.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ldcsaa/" target="_blank">~怪^_*兽~</a> 2013-10-29 02:35 <a href="http://www.cppblog.com/ldcsaa/archive/2013/10/29/203957.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>高性能 Windows Socket 组件 HP-Socket v2.3.1-beta-2 发布</title><link>http://www.cppblog.com/ldcsaa/archive/2013/10/24/203900.html</link><dc:creator>~怪^_*兽~</dc:creator><author>~怪^_*兽~</author><pubDate>Thu, 24 Oct 2013 06:11:00 GMT</pubDate><guid>http://www.cppblog.com/ldcsaa/archive/2013/10/24/203900.html</guid><wfw:comment>http://www.cppblog.com/ldcsaa/comments/203900.html</wfw:comment><comments>http://www.cppblog.com/ldcsaa/archive/2013/10/24/203900.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/ldcsaa/comments/commentRss/203900.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ldcsaa/services/trackbacks/203900.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: HP-Socket 是一套通用的高性能 Windows Socket 组件包，包含服务端组件（IOCP 模型）和客户端组件（Event Select 模型），广泛适用于 Windows 平台的 TCP/UDP 通信系统。HP-Socket 对通信层实现完全封装，上层应用不必关注通信层的任何细节；HP-Socket 提供基于事件通知模型的 API 接口，能非常简单高效地整合到各类应用程序中；另外，为了让大家能更方便的学习 HP-Socket，特此精心制作了功能测试示例（Test Echo）性能测试示例（Test Echo-PFM）PULL 模型测试示例（Test Echo-Pull） 和 UDP 测试示例（Test Echo-UDP），用户可以通过这几个测试示例入手，迅速掌握组件的设计思想和使用方法。&nbsp;&nbsp;<a href='http://www.cppblog.com/ldcsaa/archive/2013/10/24/203900.html'>阅读全文</a><img src ="http://www.cppblog.com/ldcsaa/aggbug/203900.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ldcsaa/" target="_blank">~怪^_*兽~</a> 2013-10-24 14:11 <a href="http://www.cppblog.com/ldcsaa/archive/2013/10/24/203900.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>更新整理本人所有博文中提供的代码与工具（C++，2013.10）</title><link>http://www.cppblog.com/ldcsaa/archive/2013/10/11/203643.html</link><dc:creator>~怪^_*兽~</dc:creator><author>~怪^_*兽~</author><pubDate>Thu, 10 Oct 2013 16:26:00 GMT</pubDate><guid>http://www.cppblog.com/ldcsaa/archive/2013/10/11/203643.html</guid><wfw:comment>http://www.cppblog.com/ldcsaa/comments/203643.html</wfw:comment><comments>http://www.cppblog.com/ldcsaa/archive/2013/10/11/203643.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/ldcsaa/comments/commentRss/203643.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ldcsaa/services/trackbacks/203643.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 为了更方便地管理博文中涉及的各种代码与工具资源，现在把这些资源迁移到 Google Code 中，有兴趣者可前往下载。&nbsp;&nbsp;<a href='http://www.cppblog.com/ldcsaa/archive/2013/10/11/203643.html'>阅读全文</a><img src ="http://www.cppblog.com/ldcsaa/aggbug/203643.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ldcsaa/" target="_blank">~怪^_*兽~</a> 2013-10-11 00:26 <a href="http://www.cppblog.com/ldcsaa/archive/2013/10/11/203643.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>高性能 Windows Socket 组件 HP-Socket v2.2.3 正式发布</title><link>http://www.cppblog.com/ldcsaa/archive/2013/08/25/202759.html</link><dc:creator>~怪^_*兽~</dc:creator><author>~怪^_*兽~</author><pubDate>Sun, 25 Aug 2013 14:19:00 GMT</pubDate><guid>http://www.cppblog.com/ldcsaa/archive/2013/08/25/202759.html</guid><wfw:comment>http://www.cppblog.com/ldcsaa/comments/202759.html</wfw:comment><comments>http://www.cppblog.com/ldcsaa/archive/2013/08/25/202759.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/ldcsaa/comments/commentRss/202759.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ldcsaa/services/trackbacks/202759.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: HP-Socket 是一套通用的高性能 Windows Socket 组件包，包含服务端组件（IOCP 模型）和客户端组件（Event Select 模型），广泛适用于 Windows 平台的 TCP 通信系统。HP-Socket 对通信层实现完全封装，上层应用不必关注通信层的任何细节；HP-Socket 提供基于事件通知模型的 API 接口，能非常简单高效地整合到各类应用程序中；另外，为了让大家能更方便的学习 HP-Socket，特此精心制作了一个功能测试示例（Test Echo）一个性能测试示例（Test Echo-PFM）和一个 PULL 模型测试示例（Test Echo-Pull），用户可以通过这两个测试示例入手，迅速掌握组件的设计思想和使用方法。&nbsp;&nbsp;<a href='http://www.cppblog.com/ldcsaa/archive/2013/08/25/202759.html'>阅读全文</a><img src ="http://www.cppblog.com/ldcsaa/aggbug/202759.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ldcsaa/" target="_blank">~怪^_*兽~</a> 2013-08-25 22:19 <a href="http://www.cppblog.com/ldcsaa/archive/2013/08/25/202759.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>更新整理本人所有博文中提供的代码与工具（C++，2013.08）</title><link>http://www.cppblog.com/ldcsaa/archive/2013/08/18/202614.html</link><dc:creator>~怪^_*兽~</dc:creator><author>~怪^_*兽~</author><pubDate>Sun, 18 Aug 2013 15:57:00 GMT</pubDate><guid>http://www.cppblog.com/ldcsaa/archive/2013/08/18/202614.html</guid><wfw:comment>http://www.cppblog.com/ldcsaa/comments/202614.html</wfw:comment><comments>http://www.cppblog.com/ldcsaa/archive/2013/08/18/202614.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/ldcsaa/comments/commentRss/202614.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ldcsaa/services/trackbacks/202614.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 为了更方便地管理博文中涉及的各种代码与工具资源，现在把这些资源迁移到 Google Code 中，有兴趣者可前往下载。&nbsp;&nbsp;<a href='http://www.cppblog.com/ldcsaa/archive/2013/08/18/202614.html'>阅读全文</a><img src ="http://www.cppblog.com/ldcsaa/aggbug/202614.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ldcsaa/" target="_blank">~怪^_*兽~</a> 2013-08-18 23:57 <a href="http://www.cppblog.com/ldcsaa/archive/2013/08/18/202614.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>通用高性能 Windows Socket 组件 HP-Socket v2.2.2 更新发布</title><link>http://www.cppblog.com/ldcsaa/archive/2013/07/11/201697.html</link><dc:creator>~怪^_*兽~</dc:creator><author>~怪^_*兽~</author><pubDate>Thu, 11 Jul 2013 14:49:00 GMT</pubDate><guid>http://www.cppblog.com/ldcsaa/archive/2013/07/11/201697.html</guid><wfw:comment>http://www.cppblog.com/ldcsaa/comments/201697.html</wfw:comment><comments>http://www.cppblog.com/ldcsaa/archive/2013/07/11/201697.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/ldcsaa/comments/commentRss/201697.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ldcsaa/services/trackbacks/201697.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: HP-Socket 是一套通用的高性能 Windows Socket 组件包，包含服务端组件（IOCP 模型）和客户端组件（Event Select 模型），广泛适用于 Windows 平台的 TCP 通信系统。HP-Socket 对通信层实现完全封装，上层应用不必关注通信层的任何细节；HP-Socket 提供基于事件通知模型的 API 接口，能非常简单高效地整合到各类应用程序中；另外，为了让大家能更方便的学习 HP-Socket，特此精心制作了一个功能测试示例（Test Echo）一个性能测试示例（Test Echo-PFM）和一个 PULL 模型测试示例（Test Echo-Pull），用户可以通过这两个测试示例入手，迅速掌握组件的设计思想和使用方法。&nbsp;&nbsp;<a href='http://www.cppblog.com/ldcsaa/archive/2013/07/11/201697.html'>阅读全文</a><img src ="http://www.cppblog.com/ldcsaa/aggbug/201697.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ldcsaa/" target="_blank">~怪^_*兽~</a> 2013-07-11 22:49 <a href="http://www.cppblog.com/ldcsaa/archive/2013/07/11/201697.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【★更新★】高性能 Windows C++ 通用组件 VC-Logger v2.0.3 正式发布</title><link>http://www.cppblog.com/ldcsaa/archive/2013/06/14/200961.html</link><dc:creator>~怪^_*兽~</dc:creator><author>~怪^_*兽~</author><pubDate>Thu, 13 Jun 2013 17:16:00 GMT</pubDate><guid>http://www.cppblog.com/ldcsaa/archive/2013/06/14/200961.html</guid><wfw:comment>http://www.cppblog.com/ldcsaa/comments/200961.html</wfw:comment><comments>http://www.cppblog.com/ldcsaa/archive/2013/06/14/200961.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/ldcsaa/comments/commentRss/200961.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ldcsaa/services/trackbacks/200961.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: VC-Logger 是一个简单易用的 C++ 程序通用日子组件。设计时着重考虑三个方面：功能、可用性和性能。为了让大家能更方便的学习 VC-Logger，特此精心制作了几个测试用例：TestGUILogger（GUI 版本测试用例 / 静态加载）、TestDynamicLogger（GUI 版本测试用例 / 动态加载）、TestConsoleLogger（Console 版本测试用例 / 静态加载）。&nbsp;&nbsp;<a href='http://www.cppblog.com/ldcsaa/archive/2013/06/14/200961.html'>阅读全文</a><img src ="http://www.cppblog.com/ldcsaa/aggbug/200961.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ldcsaa/" target="_blank">~怪^_*兽~</a> 2013-06-14 01:16 <a href="http://www.cppblog.com/ldcsaa/archive/2013/06/14/200961.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【端午呈献】通用高性能 Windows Socket 组件 HP-Socket v2.2.1 悄然发布</title><link>http://www.cppblog.com/ldcsaa/archive/2013/06/13/200960.html</link><dc:creator>~怪^_*兽~</dc:creator><author>~怪^_*兽~</author><pubDate>Wed, 12 Jun 2013 19:11:00 GMT</pubDate><guid>http://www.cppblog.com/ldcsaa/archive/2013/06/13/200960.html</guid><wfw:comment>http://www.cppblog.com/ldcsaa/comments/200960.html</wfw:comment><comments>http://www.cppblog.com/ldcsaa/archive/2013/06/13/200960.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/ldcsaa/comments/commentRss/200960.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ldcsaa/services/trackbacks/200960.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: HP-Socket 是一套通用的高性能 Windows Socket 组件包，包含服务端组件（IOCP 模型）和客户端组件（Event Select 模型），广泛适用于 Windows 平台的 TCP 通信系统。HP-Socket 对通信层实现完全封装，上层应用不必关注通信层的任何细节；HP-Socket 提供基于事件通知模型的 API 接口，能非常简单高效地整合到各类应用程序中；另外，为了让大家能更方便的学习 HP-Socket，特此精心制作了一个功能测试示例（Test Echo）一个性能测试示例（Test Echo-PFM）和一个 PULL 模型测试示例（Test Echo-Pull），用户可以通过这两个测试示例入手，迅速掌握组件的设计思想和使用方法。&nbsp;&nbsp;<a href='http://www.cppblog.com/ldcsaa/archive/2013/06/13/200960.html'>阅读全文</a><img src ="http://www.cppblog.com/ldcsaa/aggbug/200960.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ldcsaa/" target="_blank">~怪^_*兽~</a> 2013-06-13 03:11 <a href="http://www.cppblog.com/ldcsaa/archive/2013/06/13/200960.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【技术分享】发布本人所属 Java 与 C++ 开源项目</title><link>http://www.cppblog.com/ldcsaa/archive/2013/05/21/200420.html</link><dc:creator>~怪^_*兽~</dc:creator><author>~怪^_*兽~</author><pubDate>Mon, 20 May 2013 17:28:00 GMT</pubDate><guid>http://www.cppblog.com/ldcsaa/archive/2013/05/21/200420.html</guid><wfw:comment>http://www.cppblog.com/ldcsaa/comments/200420.html</wfw:comment><comments>http://www.cppblog.com/ldcsaa/archive/2013/05/21/200420.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.cppblog.com/ldcsaa/comments/commentRss/200420.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ldcsaa/services/trackbacks/200420.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: *** Java ***<br>1、Java 全能高效 MVC & REST 开发框架 Portal-Basic<br>2、Java 日志切割清理工具 Log-Cutter<br><br>*** C++ ***<br>1、通用高性能 Windows Socket 组件 HP-Socket<br>2、Windows C++ 应用程序通用日志组件 VC-Logger&nbsp;&nbsp;<a href='http://www.cppblog.com/ldcsaa/archive/2013/05/21/200420.html'>阅读全文</a><img src ="http://www.cppblog.com/ldcsaa/aggbug/200420.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ldcsaa/" target="_blank">~怪^_*兽~</a> 2013-05-21 01:28 <a href="http://www.cppblog.com/ldcsaa/archive/2013/05/21/200420.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【★更新★】整理发布本人所有博文中提供的代码与工具（C++）</title><link>http://www.cppblog.com/ldcsaa/archive/2013/05/08/200091.html</link><dc:creator>~怪^_*兽~</dc:creator><author>~怪^_*兽~</author><pubDate>Tue, 07 May 2013 18:02:00 GMT</pubDate><guid>http://www.cppblog.com/ldcsaa/archive/2013/05/08/200091.html</guid><wfw:comment>http://www.cppblog.com/ldcsaa/comments/200091.html</wfw:comment><comments>http://www.cppblog.com/ldcsaa/archive/2013/05/08/200091.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/ldcsaa/comments/commentRss/200091.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ldcsaa/services/trackbacks/200091.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 为了更方便地管理博文中涉及的各种代码与工具资源，现在把这些资源迁移到 Google Code 中，有兴趣者可前往下载。&nbsp;&nbsp;<a href='http://www.cppblog.com/ldcsaa/archive/2013/05/08/200091.html'>阅读全文</a><img src ="http://www.cppblog.com/ldcsaa/aggbug/200091.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ldcsaa/" target="_blank">~怪^_*兽~</a> 2013-05-08 02:02 <a href="http://www.cppblog.com/ldcsaa/archive/2013/05/08/200091.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【★更新★】高性能 Windows Socket 组件 HP-Socket v2.1.1 正式发布（源代码及测试用例下载）</title><link>http://www.cppblog.com/ldcsaa/archive/2013/04/22/199617.html</link><dc:creator>~怪^_*兽~</dc:creator><author>~怪^_*兽~</author><pubDate>Sun, 21 Apr 2013 17:55:00 GMT</pubDate><guid>http://www.cppblog.com/ldcsaa/archive/2013/04/22/199617.html</guid><wfw:comment>http://www.cppblog.com/ldcsaa/comments/199617.html</wfw:comment><comments>http://www.cppblog.com/ldcsaa/archive/2013/04/22/199617.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/ldcsaa/comments/commentRss/199617.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ldcsaa/services/trackbacks/199617.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 自从本座发表了两篇关于 Windows Socket 通信组件实现的文章后，收到不少读者的留言，希望能分享完整的源代码。此时，本座不敢弊帚自珍。特意在此提供服务端组件和客户端组件的完整代码。另外，为便于读者学习和理解，花了一点点时间精心制作了两个测试用例，一个用于功能测试（TestEcho），另一个用于性能测试（TestEcho-PFM）。读者可以通过这两个测试用例入手，迅速掌握组件的使用方法。希望对大家有所帮助，谢谢 ~ ^_^ ~&nbsp;&nbsp;<a href='http://www.cppblog.com/ldcsaa/archive/2013/04/22/199617.html'>阅读全文</a><img src ="http://www.cppblog.com/ldcsaa/aggbug/199617.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ldcsaa/" target="_blank">~怪^_*兽~</a> 2013-04-22 01:55 <a href="http://www.cppblog.com/ldcsaa/archive/2013/04/22/199617.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>高性能 Windows Socket 服务端与客户端组件（HP-Socket v2.1.1 即将发布）</title><link>http://www.cppblog.com/ldcsaa/archive/2013/04/15/199410.html</link><dc:creator>~怪^_*兽~</dc:creator><author>~怪^_*兽~</author><pubDate>Mon, 15 Apr 2013 00:18:00 GMT</pubDate><guid>http://www.cppblog.com/ldcsaa/archive/2013/04/15/199410.html</guid><wfw:comment>http://www.cppblog.com/ldcsaa/comments/199410.html</wfw:comment><comments>http://www.cppblog.com/ldcsaa/archive/2013/04/15/199410.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cppblog.com/ldcsaa/comments/commentRss/199410.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ldcsaa/services/trackbacks/199410.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 自从本座发表了两篇关于 Windows Socket 通信组件实现的文章后，收到不少读者的留言，希望能分享完整的源代码。此时，本座不敢弊帚自珍。特意在此提供服务端组件和客户端组件的完整代码。另外，为便于读者学习和理解，花了一点点时间精心制作了两个测试用例，一个用于功能测试（TestEcho），另一个用于性能测试（TestEcho-PFM）。读者可以通过这两个测试用例入手，迅速掌握组件的使用方法。希望对大家有所帮助，谢谢 ~ ^_^ ~&nbsp;&nbsp;<a href='http://www.cppblog.com/ldcsaa/archive/2013/04/15/199410.html'>阅读全文</a><img src ="http://www.cppblog.com/ldcsaa/aggbug/199410.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ldcsaa/" target="_blank">~怪^_*兽~</a> 2013-04-15 08:18 <a href="http://www.cppblog.com/ldcsaa/archive/2013/04/15/199410.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【★更新★】发布本人所有博客文章中涉及的代码与工具（大部分是C++和Java）</title><link>http://www.cppblog.com/ldcsaa/archive/2013/03/29/198918.html</link><dc:creator>~怪^_*兽~</dc:creator><author>~怪^_*兽~</author><pubDate>Fri, 29 Mar 2013 03:17:00 GMT</pubDate><guid>http://www.cppblog.com/ldcsaa/archive/2013/03/29/198918.html</guid><wfw:comment>http://www.cppblog.com/ldcsaa/comments/198918.html</wfw:comment><comments>http://www.cppblog.com/ldcsaa/archive/2013/03/29/198918.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/ldcsaa/comments/commentRss/198918.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ldcsaa/services/trackbacks/198918.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 为了更方便地管理博文中涉及的各种代码与工具资源，现在把这些资源迁移到 Google Code 中，有兴趣者可前往下载。&nbsp;&nbsp;<a href='http://www.cppblog.com/ldcsaa/archive/2013/03/29/198918.html'>阅读全文</a><img src ="http://www.cppblog.com/ldcsaa/aggbug/198918.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ldcsaa/" target="_blank">~怪^_*兽~</a> 2013-03-29 11:17 <a href="http://www.cppblog.com/ldcsaa/archive/2013/03/29/198918.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【★更新★】高性能 Windows Socket 服务端与客户端组件（源代码及测试用例下载 v2.0.1）</title><link>http://www.cppblog.com/ldcsaa/archive/2013/03/25/198742.html</link><dc:creator>~怪^_*兽~</dc:creator><author>~怪^_*兽~</author><pubDate>Sun, 24 Mar 2013 18:59:00 GMT</pubDate><guid>http://www.cppblog.com/ldcsaa/archive/2013/03/25/198742.html</guid><wfw:comment>http://www.cppblog.com/ldcsaa/comments/198742.html</wfw:comment><comments>http://www.cppblog.com/ldcsaa/archive/2013/03/25/198742.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/ldcsaa/comments/commentRss/198742.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ldcsaa/services/trackbacks/198742.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 自从本座发表了两篇关于 Windows Socket 通信组件实现的文章后，收到不少读者的留言，希望能分享完整的源代码。此时，本座不敢弊帚自珍。特意在此提供服务端组件和客户端组件的完整代码。另外，为便于读者学习和理解，花了一点点时间精心制作了两个测试用例，一个用于功能测试（TestEcho），另一个用于性能测试（TestEcho-PFM）。读者可以通过这两个测试用例入手，迅速掌握组件的使用方法。希望对大家有所帮助，谢谢 ~ ^_^ ~&nbsp;&nbsp;<a href='http://www.cppblog.com/ldcsaa/archive/2013/03/25/198742.html'>阅读全文</a><img src ="http://www.cppblog.com/ldcsaa/aggbug/198742.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ldcsaa/" target="_blank">~怪^_*兽~</a> 2013-03-25 02:59 <a href="http://www.cppblog.com/ldcsaa/archive/2013/03/25/198742.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何养成良好的 C++ 编程习惯（一）—— 内存管理</title><link>http://www.cppblog.com/ldcsaa/archive/2013/03/20/198603.html</link><dc:creator>~怪^_*兽~</dc:creator><author>~怪^_*兽~</author><pubDate>Tue, 19 Mar 2013 17:27:00 GMT</pubDate><guid>http://www.cppblog.com/ldcsaa/archive/2013/03/20/198603.html</guid><wfw:comment>http://www.cppblog.com/ldcsaa/comments/198603.html</wfw:comment><comments>http://www.cppblog.com/ldcsaa/archive/2013/03/20/198603.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/ldcsaa/comments/commentRss/198603.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ldcsaa/services/trackbacks/198603.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: “养成良好的编程习惯”其实是相当综合的一个命题，可以从多个角度、维度和层次进行论述和评判。如代码的风格、效率和可读性；模块设计的灵活性、可扩展性和耦合度等等。要试图把所有方面都阐述清楚必须花很多的精力，而且也不一定能阐述得全面。因此，本系列文章以软件开发的基础问题为切入点，阐述程序设计和代码编写方面的细节问题，以点带面，旨在激发大家的思考与总结，希望能为大家带来实际的帮助。<br>    虽然本系列文章定位为科普读物，但本座相信它们不但适合新手们学习借鉴，同时也能引发老鸟们的反思与共鸣。欢迎大家提出宝贵的意见和反馈。&nbsp;&nbsp;<a href='http://www.cppblog.com/ldcsaa/archive/2013/03/20/198603.html'>阅读全文</a><img src ="http://www.cppblog.com/ldcsaa/aggbug/198603.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ldcsaa/" target="_blank">~怪^_*兽~</a> 2013-03-20 01:27 <a href="http://www.cppblog.com/ldcsaa/archive/2013/03/20/198603.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>发布本人所有博客文章中涉及的代码与工具（大部分是C++和Java）</title><link>http://www.cppblog.com/ldcsaa/archive/2013/01/06/196132.html</link><dc:creator>~怪^_*兽~</dc:creator><author>~怪^_*兽~</author><pubDate>Sun, 06 Jan 2013 15:05:00 GMT</pubDate><guid>http://www.cppblog.com/ldcsaa/archive/2013/01/06/196132.html</guid><wfw:comment>http://www.cppblog.com/ldcsaa/comments/196132.html</wfw:comment><comments>http://www.cppblog.com/ldcsaa/archive/2013/01/06/196132.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cppblog.com/ldcsaa/comments/commentRss/196132.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ldcsaa/services/trackbacks/196132.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp;&nbsp;（为了能让更多人看到，再发一次旧文，望见谅）<span style="font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;"><br /></span>&nbsp;&nbsp;&nbsp;为了更方便地管理博文中涉及的各种代码与工具资源，现在把这些资源迁移到 Google Code 中，有兴趣者可前往下载。</p><hr /><p><span style="font-size: 18pt;"><strong>C++</strong></span></p><p><strong>1、《<a href="http://www.cnblogs.com/ldcsaa/archive/2012/06/13/2546551.html">高性能 Windows Socket 服务端与客户端组件（源代码及测试用例下载）</a>》</strong></p><p><strong>&nbsp; &nbsp; 《<a href="http://www.cnblogs.com/ldcsaa/archive/2012/02/26/2367409.html">基于 IOCP 的通用异步 Windows Socket TCP 高性能服务端组件的设计与实现</a>》</strong></p><p><strong>&nbsp; &nbsp; 《<a href="http://www.cnblogs.com/ldcsaa/archive/2012/02/15/2351756.html">通用异步 Windows Socket TCP 客户端组件的设计与实现</a>》</strong></p><p>　　摘要：编写 Windows Socket TCP 客户端其实并不困难，Windows 提供了6种 I/O 通信模型供大家选择。但本座看过很多客户端程序都把 Socket 通信和业务逻辑混在一起，剪不断理还乱。每个程序都 Copy / Parse 类似的代码再进行修改，实在有点情何以堪。因此本座利用一些闲暇时光写了一个基于 IOCP 的通用异步 Windows Socket TCP 高性能服务端组件和一个通用异步 Windows Socket TCP 客户端组件供各位看官参详参详，希望能激发下大家的灵感。</p><p>　　资源下载地址：<a href="http://ldcsaa.googlecode.com/files/socket_server_and_client.zip">http://ldcsaa.googlecode.com/files/socket_server_and_client.zip</a></p><p>&nbsp;</p><p><strong>2、《<a href="http://www.cnblogs.com/ldcsaa/archive/2012/06/28/2560619.html">Windows C++ 应用程序通用日志组件（组件及测试程序下载）</a>》</strong></p><p>　　摘要：编写一个通用的日志组件应该着重考虑三个方面：功能、可用性和性能。下面，本座详细说明在设计日志组件时对这些方面问题的考虑：</p><ul><li style="list-style-type: none;"><ul><li>功能：本日志组件的目的是满足大多数应用程序记录日志的需求 &#8212;&#8212; 把日志输出到文件或发送到应用程序中，并不提供一些复杂但不常用的功能</li><li>可用性：本日志组件着重考虑了可用性，尽量让使用者用起来觉得简便、舒心</li><li>性能：性能是组件是否值得使用的硬指标，本组件从设计到编码的过程都尽量考虑到性能优化</li></ul></li></ul><p>　　资源下载地址：<a href="http://ldcsaa.googlecode.com/files/VC_Logger.zip">http://ldcsaa.googlecode.com/files/VC_Logger.zip</a></p><p>&nbsp;</p><p><strong>3、《<a href="http://www.cnblogs.com/ldcsaa/archive/2012/02/18/2356638.html">如何养成良好的 C++ 编程习惯（一）&#8212;&#8212; 内存管理</a>》</strong></p><p>　　摘要：说起 C/C++ 的内存管理似乎令人望而生畏，满屏的 new / delete / malloc / free，OutPut 窗口无尽的 Memory Leak 警告，程序诡异的 0X00000004 指针异常，仿佛回到那一年我们一起哭过的日子，你 Hold 得住吗？其实，现实并没有你想的那么糟糕。只要你付出一点点，花一点点心思，没错！就一点点而已 &#8212;&#8212;&nbsp;<strong>用 C++ 类封装内存访问</strong>，就会解决你大部分的烦恼，让你受益终身。以 Windows 程序为例，主要有以下几种内存管理方式：</p><ul><li style="list-style-type: none;"><ul><li><strong>虚拟内存</strong>（Virtual Memory）</li><li><strong>默认堆</strong>和<strong>私有堆</strong>（Process Heap &amp; Private Heap）</li><li><strong>内存映射文件</strong>（File Mapping）</li><li><strong>进程堆栈</strong>（Heap，其实就是用 malloc()&nbsp;或&nbsp;默认的 new 操作符在 Process Heap 里一小块一小块地割肉 ^_^）</li><li><strong>栈</strong>（Stack，内存由调用者或被调用者自动管理）</li></ul></li></ul><p>　　资源下载地址：<a href="http://ldcsaa.googlecode.com/files/socket_server_and_client.zip">http://ldcsaa.googlecode.com/files/socket_server_and_client.zip</a>&nbsp;（源代码在 Common/Src 目录中）</p><p>&nbsp;</p><p><strong>4、《<a href="http://www.cnblogs.com/ldcsaa/archive/2012/02/13/2348588.html">实现 Win32 程序的消息映射宏（类似 MFC ）</a>》</strong></p><p>　　摘要：对于消息映射宏，不用多说了，用过 MFC 的人都很清楚。但目前有不少程序由于各种原因并没有使用 MFC，所以本帖讨论一下如何在 Win32 程序中实现类似MFC的消息映射宏。其实 Windows 的头文件 &#8220;WindowsX.h&#8221;（注意：不是&#8220;Windows.h&#8221;） 中提供了一些有用的宏来帮助我们实现消息映射。本座是也基于这个头文件实现消息映射。</p><p>　　资源下载地址：<a href="http://ldcsaa.googlecode.com/files/socket_server_and_client.zip">http://ldcsaa.googlecode.com/files/socket_server_and_client.zip</a>&nbsp;（源代码在 Common/Src/Win32Helper.h 文件中）</p><p>&nbsp;</p><p><strong>5、《<a href="http://www.cnblogs.com/ldcsaa/archive/2012/02/12/2348398.html">用宏实现 C++ Singleton 模式</a>》</strong></p><p>　　摘要：Singleton 设计模式应用非常广泛，实现起来也很简单，无非是私有化若干个构造函数，&#8220;operator =&#8221; 操作符，以及提供一个静态的创建和销毁方法。但是对每个类都写这些雷同的代码是本座不能容忍的，因此，本座使用宏把整个 Singleton 模式封装起来，无论是类的定义还是类的使用的极其简单。</p><p>　　资源下载地址：<a href="http://ldcsaa.googlecode.com/files/socket_server_and_client.zip">http://ldcsaa.googlecode.com/files/socket_server_and_client.zip</a>&nbsp;（源代码在 Common/Src/Singleton.h 文件中）</p><p>&nbsp;</p><p><strong>6、《<a href="http://www.cnblogs.com/ldcsaa/archive/2012/02/12/2348302.html">C++ 封装私有堆（Private Heap）</a>》</strong></p><p>　　摘要：Private Heap 是 Windows 提供的一种内存内存机制，对于那些需要频繁分配和释放动态内存的应用程序来说，Private Heap 是提高应用程序性能的一大法宝，使用它能降低 new / malloc 的调用排队竞争以及内存空洞。</p><p>　　资源下载地址：<a href="http://ldcsaa.googlecode.com/files/socket_server_and_client.zip">http://ldcsaa.googlecode.com/files/socket_server_and_client.zip</a>&nbsp;（源代码在 Common/Src/PrivateHeap.h 文件中）</p><p>&nbsp;</p><p><strong>7、《<a href="http://www.cnblogs.com/ldcsaa/archive/2012/02/12/2348160.html">基于 crt debug 实现的 Windows 程序内存泄漏检测工具</a>》</strong></p><p>　　摘要：Windows 程序内存泄漏检测是一项十分重要的工作，基于 GUI 的应用程序通常在调试结束时也有内存泄漏报告，但这个报告的信息不全面，不能定位到产生泄漏的具体行号。其实自己实现一个内存泄漏检测工具是一件非常简单的事情，但看过网上写的很多例子，普遍存在两种问题：</p><ul><li style="list-style-type: none;"><ul><li>要么考虑不周全，一种环境下能用，而在另外一种环境下却不能很好工作，或者漏洞报告的输出方式不合理。</li><li>要么过于保守，例如：完全没有必要在 _malloc_dbg() 和 _free_dbg() 的调用前后用 CriticalSection 进行保护（跟踪一下多线程环境下 new 和 malloc 的代码就会明白）。</li></ul></li></ul><p>　　资源下载地址：<a href="http://ldcsaa.googlecode.com/files/socket_server_and_client.zip">http://ldcsaa.googlecode.com/files/socket_server_and_client.zip</a>&nbsp;（源代码在 Common/Src/debug/win32_crtdbg.h 文件中）</p><hr /><p><span style="font-size: 18pt;"><strong>Java</strong></span></p><p><strong>1、《<a href="http://www.cnblogs.com/ldcsaa/archive/2012/11/22/2782205.html">Portal-Basic Java Web 应用开发框架 v2.6.2 发布（源码、示例及文档）</a>》</strong></p><p>　　摘要：Portal-Basic Web 应用开发框架（简称 Portal-Basic）是一套功能完备的高性能 Web 应用开发框架，内置可扩展的 MVC Web 基础架构和 DAO 访问接口（已内置 Hibernate、MyBatis 和 JDBC 支持），集成 Action拦截、Form Bean / Dao Bean / Spring Bean 装配、国际化、文件上传下载和缓存等基础 Web 应用组件，提供高效灵活的纯 Jsp/Servlet API 编程模型，完美整合 Spring，非常容易学习和使用。</p><p>　　资源下载地址：<a href="http://code.google.com/p/portal-basic/downloads/list">http://code.google.com/p/portal-basic/downloads/list</a></p><p>&nbsp;</p><p><strong>2、《<a href="http://www.cnblogs.com/ldcsaa/archive/2012/06/25/2560481.html">用 Java 实现的日志切割清理工具（源代码下载）</a>》</strong></p><p>　　摘要：对于服务器的日常维护来说，日志清理是非常重要的事情，如果残留日志过多则严重浪费磁盘空间同时影响服务的性能。如果用手工方式进行清理，会花费太多时间，并且很多时候难以满足实际要求。例如：如何在每个星期六凌晨3点把超过2G大的日志文件进行切割，保留最新的100M日志记录？网上没有发现能满足本座要求的日志切割工具，因此花了一些闲暇时间自己写了一个。由于要在多个平台上使用，为了方便采用 Java 实现。本工具命名为&nbsp;<strong>LogCutter</strong>，主要有以下特点：</p><ul><li style="list-style-type: none;"><ul><li>支持 Linux、Mac 和 Windows 等所有常见操作系统平台</li><li>支持命令行交互式运行</li><li>支持后台非交互式运行（Linux/MAC 下使用 daemon 进程实现，Windows 用系统 Service 实现）</li><li>支持两种日志清理方式（删除日志文件或切割日志文件）</li><li>支持对 GB18030、UTF-8、UTF-16LE、UTF-16BE 等常用日志文件类型进行切割（不会发生切掉半个字符的情况）</li><li>高度可配置（程序执行周期、要删除的日志文件过期时间、要切割的日志文件阀值和保留大小等均可配置</li></ul></li></ul><p>　　资源下载地址：<a href="http://ldcsaa.googlecode.com/files/LogCutter.zip">http://ldcsaa.googlecode.com/files/LogCutter.zip</a></p><p>&nbsp;</p><p><strong>3、《<a href="http://www.cnblogs.com/ldcsaa/archive/2012/02/23/2364036.html">通用 Java 文件上传和下载组件的设计与实现</a>》</strong></p><p>　　摘要：文件上传和下载是 Web 应用中的一个常见功能，相信各位或多或少都曾写过这方面相关的代码。但本座看过不少人在实现上传或下载功能时总是不知不觉间与程序的业务逻辑纠缠在一起，因此，当其他地方要用到这些功能时则无可避免地 Copy / Pase，然后再进行修改。这样丑陋不堪的做法导致非常容易出错不说，更大的问题是严重浪费时间不断做重复类似的工作，这是本座绝不能容忍的。哎，人生苦短啊，浪费时间在这些重复工作身上实在是不值得，何不把这些时间省出来打几盘罗马或者踢一场球？为此，本座利用一些闲暇之时光编写了一个通用的文件上传和文件下载组件，实现方法纯粹是基于 JSP，没有太高的技术难度，总之老少咸宜 ^_^。现把设计的思路和实现的方法向各位娓娓道来，希望能起到抛砖引玉的效果，激发大家的创造性思维。</p><p>　　资源下载地址：<a href="http://code.google.com/p/portal-basic/downloads/list">http://code.google.com/p/portal-basic/downloads/list</a>&nbsp;（作为 Portal-Basic 第一部分，代码在 com.bruce.util.http 包中）</p><p>&nbsp;</p><p><strong>4、《<a href="http://www.cnblogs.com/ldcsaa/archive/2012/02/16/2353030.html">深度剖析：Java POJO Bean 对象与 Web Form 表单的自动装配</a>》</strong></p><p>　　摘要：时下很多 Web 框架 都实现了 Form 表单域与 Java 对象属性的自动装配功能，该功能确实非常有用，试想如果没这功能则势必到处冲积着 request.getParameter() 系列方法与类型转换方法的调用。重复代码量大，容易出错，同时又不美观，影响市容。现在的问题是，这些框架通过什么方法实现自动装配的？如果不用这些框架我们自己如何去实现呢？尤其对于那些纯 JSP/Servlet 应用，要是拥有自动装配功能该多好啊！本座深知各位之期盼，决定把自动装配的原理和实现方法娓娓道来。</p><p>　　资源下载地址：<a href="http://code.google.com/p/portal-basic/downloads/list">http://code.google.com/p/portal-basic/downloads/list</a>&nbsp;（作为 Portal-Basic 第一部分，代码在 com.bruce.util 包中）</p><p>&nbsp;</p><p><strong>5、《<a href="http://www.cnblogs.com/ldcsaa/archive/2012/02/14/2350751.html">Linux 安装 MySQL / MySQL 主从备份</a>》</strong></p><p>　　资源下载地址：<a href="http://ldcsaa.googlecode.com/files/services.zip">http://ldcsaa.googlecode.com/files/services.zip<br /></a></p><hr /><p>&nbsp;<strong style="color: #800000;">原文出处：</strong><a href="http://www.cnblogs.com/ldcsaa" target="_blank"><strong>怪兽的博客</strong></a><strong>&nbsp;&nbsp;</strong><a href="http://weibo.com/u/1402935851" target="_blank"><strong>怪兽的微博</strong></a><strong>&nbsp;&nbsp;</strong><a href="http://qun.qq.com/#jointhegroup/gid/75375912" target="_blank"><strong>怪兽乐园Q群</strong></a></p><img src ="http://www.cppblog.com/ldcsaa/aggbug/196132.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ldcsaa/" target="_blank">~怪^_*兽~</a> 2013-01-06 23:05 <a href="http://www.cppblog.com/ldcsaa/archive/2013/01/06/196132.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Windows C++ 应用程序通用日志组件（组件及测试程序下载）</title><link>http://www.cppblog.com/ldcsaa/archive/2012/07/02/181117.html</link><dc:creator>~怪^_*兽~</dc:creator><author>~怪^_*兽~</author><pubDate>Mon, 02 Jul 2012 02:46:00 GMT</pubDate><guid>http://www.cppblog.com/ldcsaa/archive/2012/07/02/181117.html</guid><wfw:comment>http://www.cppblog.com/ldcsaa/comments/181117.html</wfw:comment><comments>http://www.cppblog.com/ldcsaa/archive/2012/07/02/181117.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cppblog.com/ldcsaa/comments/commentRss/181117.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ldcsaa/services/trackbacks/181117.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 主要功能<br>a) 把日志信息输出到指定文件<br>b) 每日生成一个日志文件<br>c) 对于 GUI 程序，可以把日志信息发送到指定窗口<br>d) 对于Console应用程序，可以把日志信息发往标准输出 (std::cout)<br>e) 支持 MBCS / UNICODE，Console / GUI 程序<br>f) 支持动态加载和静态加载日志组件 DLL<br>g) 支持 DEBUG/TRACE/INFO/WARN/ERROR/FATAL 等多个日志级别&nbsp;&nbsp;<a href='http://www.cppblog.com/ldcsaa/archive/2012/07/02/181117.html'>阅读全文</a><img src ="http://www.cppblog.com/ldcsaa/aggbug/181117.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ldcsaa/" target="_blank">~怪^_*兽~</a> 2012-07-02 10:46 <a href="http://www.cppblog.com/ldcsaa/archive/2012/07/02/181117.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>高性能 Windows Socket 服务端与客户端组件（源代码及测试用例下载）</title><link>http://www.cppblog.com/ldcsaa/archive/2012/06/15/178763.html</link><dc:creator>~怪^_*兽~</dc:creator><author>~怪^_*兽~</author><pubDate>Fri, 15 Jun 2012 01:40:00 GMT</pubDate><guid>http://www.cppblog.com/ldcsaa/archive/2012/06/15/178763.html</guid><wfw:comment>http://www.cppblog.com/ldcsaa/comments/178763.html</wfw:comment><comments>http://www.cppblog.com/ldcsaa/archive/2012/06/15/178763.html#Feedback</comments><slash:comments>8</slash:comments><wfw:commentRss>http://www.cppblog.com/ldcsaa/comments/commentRss/178763.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ldcsaa/services/trackbacks/178763.html</trackback:ping><description><![CDATA[<p>　　自从本座发表了两篇关于 Windows Socket 通信组件实现的文章后，收到不少读者的留言，希望能分享完整的源代码。此时，本座不敢弊帚自珍。特意在此提供服务端组件和客户端组件的完整代码。另外，为便于读者学习和理解，花了一点点时间精心制作了两个测试用例，一个用于功能测试（TestEcho），另一个用于性能测试（TestEcho-PFM）。读者可以通过这两个测试用例入手，迅速掌握组件的使用方法。希望对大家有所帮助，谢谢 ~ ^_^ ~</p>
<p>&nbsp;</p>
<p>　　（<a href="http://files.cnblogs.com/ldcsaa/socket_server_%26_client.zip" data-mce-href="http://files.cnblogs.com/ldcsaa/socket_server_%26_client.zip">轻踩这里，你懂的 ^_*</a>）</p>
<p>&nbsp;</p>
<hr />

<p>&nbsp;</p>
<p><em><strong><span style="font-size: 14pt" data-mce-style="font-size: 14pt;">原文：《<a href="http://www.cnblogs.com/ldcsaa/archive/2012/02/26/2367409.html" data-mce-href="http://www.cnblogs.com/ldcsaa/archive/2012/02/26/2367409.html">基于 IOCP 的通用异步 Windows Socket TCP 高性能服务端组件的设计与实现</a></span></strong></em><em><strong><span style="font-size: 14pt" data-mce-style="font-size: 14pt;">》</span></strong></em></p>
<p>&nbsp;</p>
<p><span style="font-size: 18pt" data-mce-style="font-size: 18pt;"><strong>设计概述</strong></span></p>
<p>　　服务端通信组件的设计是一项非常严谨的工作，其中性能、伸缩性和稳定性是必须考虑的硬性质量指标，若要把组件设计为通用组件提供给多种已知或未知的上层应用使用，则设计的难度更会大大增加，通用性、可用性和灵活性必须考虑在内。</p>
<p>　　现以一个基于 IOCP 的通用异步 Windows Socket TCP 服务端组件为例子，讲述其设计与实现相关的问题，希望能引发大家的思考，对大家日后开展相关类似工作时有所帮助。关于通用性、可用性、Socket 模型选型以及接口模型的设计等问题已经在本座前段时间发表的《<strong><a href="http://www.cnblogs.com/ldcsaa/archive/2012/02/15/2351756.html" target="_blank" data-mce-href="http://www.cnblogs.com/ldcsaa/archive/2012/02/15/2351756.html">通用异步 Windows Socket TCP 客户端组件的设计与实现</a></strong>》中进行过阐述，此处就不再重复了。现在主要针对服务端通信组件的特点阐述设计其设计和实现相关的问题。</p>
<p>&nbsp;</p>
<p>　　<strong>一、线程结构</strong></p>
<p>　　与组件相关的线程有 3 种：使用者线程、Accept&nbsp; 线程和工作线程，其中后 2 种由组件实现。</p>
<ol><li style="list-style-type: none" data-mce-style="list-style-type: none;">
<ol><li><strong>使用者线程：</strong>通过调用 Start/Stop/Send 等组件方法操作组件的一个或多个线程，通常是程序的主线程或其它业务逻辑线程。</li><li><strong>Accept 线程：</strong>使用 AcceptEx() 接收客户端连接请求并创建 Client Socket 的线程，将其独立出来，实现为单独的线程将使组件的模块划分更清晰，更重要的是避免与业务逻辑和通信处理的相互影响。</li><li><strong>工作线程：</strong>使用 GetQueuedCompletionStatus() 监听网络事件并处理网络交互的多个线程，工作线程处理完网络事件后会向上层应用发送 OnAccept/OnSend/OnReceive 等组件通知。工作线程的数量可以根据实际情况之行设置（通常建议为：CPU&nbsp;Core Number&nbsp;* 2 + 2）。 </li></ol></li></ol>
<p>　　<strong>注意：</strong>如果上层应用在接收到 OnAccept/OnSend/OnReceive 这些组件通知时直接进行业务逻辑处理并在其中操作组件，则工作线程也成为了使用者线程。另外，如果要处理的业务逻辑比较耗时，上层应用应该在接收到组件通知后交由其他线程处理。</p>
<p>&nbsp;</p>
<p>　　<strong>二、性能</strong></p>
<p>　　组件采用 Windows 平台效率最高的&nbsp;IOCP Socket 通信模型，因此在通信接口的性能方面是有保证的，这里就不多说了。现在从组件的设计与实现的角度来来阐述性能的优化。组件在代码级别做了很多优化，一些看似多余或繁琐的代码其实都是为了性能服务；组件在设计方面主要采用了 2 中优化策略：缓存池和私有堆。</p>
<ol>
<ol><li><strong>缓存池：</strong>在通信的过程中，通常需要频繁的申请和释放内存缓冲区（TBufferObj）和 Socket 相关的结构体（TSocketObj），这会大大影响组件的性能，因此，组件为 TBufferObj 和 TSocketObj 建立了动态缓存池， 只有当缓存池中没有可用对象时才创建新对象，而当缓存对象过多时则会压缩缓存池。</li><li><strong>私有堆（Private Heap）：</strong>在操作系统中，new / malloc 等操作是串行化的，虽然一般的应用程序不用太在乎这个问题，但是在一个高并发的服务器中则是个不可忽略的问题，另外 TBufferObj 和 TSocketObj 均为大小固定的结构体，因此非常适合在私有堆中分配内存，避免与 new / malloc 竞争同时又减少内存空洞。（<a href="http://www.cnblogs.com/ldcsaa/archive/2012/02/12/2348302.html" target="_blank" data-mce-href="http://www.cnblogs.com/ldcsaa/archive/2012/02/12/2348302.html">关于私有堆的使用方法请参考这里 ^_^</a>） </li></ol></ol>
<p>&nbsp;　　</p>
<p>　　<strong>三、通用性与可用性</strong></p>
<p>　　与《<strong><a href="http://www.cnblogs.com/ldcsaa/archive/2012/02/15/2351756.html" target="_blank" data-mce-href="http://www.cnblogs.com/ldcsaa/archive/2012/02/15/2351756.html">通用异步 Windows Socket TCP 客户端组件的设计与实现</a></strong>》描述的客户端接口一样，服务端组件也提供了两组接口：ISocketServer 接口提供组件操作方法，由上层应用直接调用；IServerSocketListener 接口提供组件通知方法，由上层应用实现，这两个接口设计得非常简单，主要方法均不超过 5 个。由于组件自身功能完备（不需要附带其它库或代码）并且职责单一（只管通信，不参与业务逻辑），因此可以十分方便第整合到任何类型的应用程序中。</p>
<p>&nbsp;</p>
<p>　　<strong>四、伸缩性</strong></p>
<p>　　可以根据实际的使用环境要求设置工作线程的数量、 TBufferObj 和 TSocketObj 缓存池的大小、TBufferObj 缓冲区的大小、Socket 监听队列的大小、AccepEx 派发的数目以及心跳检查的间隔等。</p>
<p>&nbsp;</p>
<p>　　<strong>五、连接标识</strong></p>
<p>　　组件完全封装了所有的底层 Socket 通信，上层应用看不到任何通信细节，不必也不能干预任何通信操作。另外，组件在 IServerSocketListener 通知接口的所有方法中都有一个 Connection ID 参数，该参数作为连接标识提供给上层应用识别不同的连接。</p>
<p>&nbsp;</p>
<hr />

<p>&nbsp;</p>
<p><em><strong><span style="font-size: 14pt" data-mce-style="font-size: 14pt;">原文：《<a href="http://www.cnblogs.com/ldcsaa/archive/2012/02/15/2351756.html" data-mce-href="http://www.cnblogs.com/ldcsaa/archive/2012/02/15/2351756.html">通用异步 Windows Socket TCP 客户端组件的设计与实现</a></span></strong></em><em><strong><span style="font-size: 14pt" data-mce-style="font-size: 14pt;">》</span></strong></em></p>
<p>&nbsp;</p>
<p><span style="font-size: 18pt" data-mce-style="font-size: 18pt;"><strong>设计概述</strong></span></p>
<p>　　编写 Windows Socket TCP 客户端其实并不困难，Windows 提供了6种&nbsp;I/O 通信模型供大家选择。但本座看过很多客户端程序都把 Socket 通信和业务逻辑混在一起，剪不断理还乱。每个程序都 Copy / Parse 类似的代码再进行修改，实在有点情何以堪。因此本座利用一些闲暇时光写了一个<strong><a href="http://www.cnblogs.com/ldcsaa/archive/2012/02/25/2367409.html" target="_blank" data-mce-href="http://www.cnblogs.com/ldcsaa/archive/2012/02/25/2367409.html">基于 IOCP 的通用异步 Windows Socket TCP&nbsp;高性能服务端组件</a></strong>和一个<strong>通用异步 Windows Socket TCP 客户端组件</strong>供各位看官参详参详，希望能激发下大家的灵感。本篇文章讲述客户端组件。闲话少说，我们现在步入正题。</p>
<ul><li>最重要的第一个问题：如何才能达到通用？ </li></ul>
<p>　　答：很简单。</p>
<p>　　　　1、限制组件的职能，说白了，<span style="color: #0000ff" data-mce-style="color: #0000ff;">通信组件的唯一职责就是接受和发送字节流</span>，绝对不能参与上层协议解析等工作。不在其位不谋其政就是这个意思。</p>
<p>　　　　2、与上层使用者解耦、互不依赖，组件与使用者通过接口方法进行交互，组件实现 ISocketClient 接口为上层提供操作方法；使用者通过&nbsp;IClientSocketListener 接口把自己注册为组件的 Listener，接收组件通知。因此，任何使用者只要实现了 IClientSocketListener 接口都可以使用组件；另一方面，你甚至可以自己重新写一个实现方式完全不同的组件实现给使用者调用，只要该组件遵从 ISocketClient 接口。这也是 DIP 设计原则的体现（<a href="http://www.cnblogs.com/ldcsaa/archive/2012/02/26/2368959.html" target="_blank" data-mce-href="http://www.cnblogs.com/ldcsaa/archive/2012/02/26/2368959.html">若想了解更多关于设计原则的内容请猛击这里 ^_^</a>）。</p>
<p>&nbsp;</p>
<ul><li>最重要的第二个问题：可用性如何，也就是说使用起来是否是否方便？ </li></ul>
<p>　　答：这个问题问得很好，可用性对所有通用组件都是至关重要的，如果太难用还不如自己重头写一个来得方便。因此，ISocketClient 和 IClientSocketListener 接口设计得尽量简单易用（通俗来说就是&#8220;傻瓜化&#8221;），这两个接口的主要方法均不超过 5 个。</p>
<p>&nbsp;</p>
<ul><li>最重要的第三个问题：组件的性能如何？ </li></ul>
<p>　　作为底层的通用组件，性能问题是必须考虑的，绝对不能成为系统的瓶颈。而另一方面，从实际出发，毕竟只是一个客户端组件，它的并发性要求远没有服务端那么高。因此，组件在设计上充分考虑了性能、现实使用情景、可用性和实现复杂性等因素，确保满足性能要求的同时又不会写得太复杂。做出以下两点设计决策：</p>
<ol>
<ol><li>在单独线程中实现 Socket 通信交互。这样可以避免与主线程或其他线程相互干扰。</li><li>I/O&nbsp;模型选择 WSAEventSelect。细说一下选择这种 I/O 模型的原因：（各种 I/O 模型的性能比较可以参考：《Windows 网络编程（中文第二版）》第 154 页） 
<ul><li>阻塞模型：（不解析，你懂的^_^）</li><li>非阻塞模型：（性能太低）</li><li>WSAAsyncSelect：&nbsp;（两个原因：a、性能太低；b、对于纯 Console 程序还要背负 HWND 实在是伤不起呀！）</li><li>重叠 I/O：（有点复杂了）</li><li>完成端口：（何必呢？） </li></ul></li></ol></ol>
<hr />

<p>&nbsp;<strong style="color: #800000">原文出处：</strong><a href="http://www.cnblogs.com/ldcsaa" target="_blank"><strong>怪兽的博客</strong></a><strong>&nbsp;&nbsp;</strong><a href="http://weibo.com/u/1402935851" target="_blank"><strong>怪兽的微博</strong></a><strong>&nbsp;&nbsp;</strong><a href="http://qun.qq.com/#jointhegroup/gid/75375912" target="_blank"><strong>怪兽乐园Q群</strong></a></p><img src ="http://www.cppblog.com/ldcsaa/aggbug/178763.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ldcsaa/" target="_blank">~怪^_*兽~</a> 2012-06-15 09:40 <a href="http://www.cppblog.com/ldcsaa/archive/2012/06/15/178763.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>