2014年2月26日
摘要: 手把手叫你玩转网络编程系列之三 完成端口(Completion Port)详解 ----- By PiggyXP(小猪)前言 本系列里完成端口的代码在两年前就已经写好了,但是由于许久没有写东西了,不知该如何提笔,所以这篇文档总是在酝酿之中……酝酿了两年之后,终于决定开始动笔了,但愿还不算晚….. 这篇文档我非常详细并且图文并茂的介绍了关于网络编程模型中完成端口的方方面面的信息,从API的用法到使用的步骤,从完成端口的实现机理到实际使用的注意事项,都有所涉及,并且为了让朋友们更直观的体会完成端口的用法,本文附带了有详尽注释的使用MFC编写的图形界面的示例代码。 我的初衷是希望写一份互联网上能找. 阅读全文
posted @ 2014-02-26 15:25 bitbit 阅读(1043) 评论(0) 推荐(0) 编辑
摘要: 很幽默的讲解六种Socket IO模型本文简单介绍了当前Windows支持的各种Socket I/O模型,如果你发现其中存在什么错误请务必赐教。一:select模型二:WSAAsyncSelect模型三:WSAEventSelect模型四:Overlapped I/O 事件通知模型五:Overlapped I/O 完成例程模型六:IOCP模型老陈有一个在外地工作的女儿,不能经常回来,老陈和她通过信件联系。他们的信会被邮递员投递到他们的信箱里。这和Socket模型非常类似。下面我就以老陈接收信件为例讲解Socket I/O模型~~~一:select模型老陈非常想看到女儿的信。以至于他每隔10分. 阅读全文
posted @ 2014-02-26 15:10 bitbit 阅读(2637) 评论(0) 推荐(2) 编辑
摘要: 二叉树习题// Tree2.cpp : 定义控制台应用程序的入口点。//#include #include "stdafx.h"using namespace std;typedef struct _TreeNode{char data;_TreeNode* lChild;_TreeNode* rChild;}TreeNode,*PTreeNode; void PreWalk(TreeNode* p) { if(p == NULL) return; coutdata lChild != NULL) coutdatalChild); if( p->rChild != N 阅读全文
posted @ 2014-02-26 14:52 bitbit 阅读(266) 评论(0) 推荐(0) 编辑
  2012年12月11日
摘要: 一. 分页存储管理1.基本思想用户程序的逻辑地址空间被划分成若干固定大小的区域,称为“页”,相应地,内存空间分成若干个物理块,页和块的大小相等。可将用户程序的任一页放在内存的任一块中,实现了离散分配。2. 分页存储管理的地址机构15 12 11 0 页号P 页内位移量W页号4位,每个作业最多2的4次方=16页,表示页号从0000~1111(24-1),页内位移量的位数表示页的大小,若页内位移量12位,则2的12次方=4k,页的大小为4k,页内地址从000000000000~111111111111若给定一个逻辑地址为A,页面大小为L,则页号P=INT[A/L],页内地址W=A MOD L3. 阅读全文
posted @ 2012-12-11 09:39 bitbit 阅读(1230) 评论(0) 推荐(0) 编辑
  2012年11月21日
摘要: 简单工厂模式基本简介 从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。 实现方式(附图) 简单工厂模式的UML类图(见右图) 简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例。 该模式中包含的角色及其职责 工厂(Creator)角色 简单工厂模式的核心,它负责实现... 阅读全文
posted @ 2012-11-21 10:55 bitbit 阅读(351) 评论(0) 推荐(0) 编辑
  2012年11月20日
摘要: 封装变化多用组合,少用继承针对接口编程,不针对实现编程为交互对象之间的松耦合设计而努力类应该对扩展开放,对修改关闭依耐抽象,不要依耐具体类只和朋友交谈别找我,我会找你类应该只有一个改变的理由 阅读全文
posted @ 2012-11-20 19:53 bitbit 阅读(307) 评论(0) 推荐(0) 编辑
摘要: “不要写完代码就束之高阁,适当地优化代码结构,能够为以后的开发带来许多方便,这《重构:改善既有代码的设计》就向你介绍了这方面的技巧,说得非常详细。” “程序几乎离不开重构,但如何更加迅速有效地重构却一直没有系统性的指导。《重构:改善既有代码的设计》就是这样的经典巨著,有了它,重构不再烦琐!”软件开发的不朽经典,生动阐述重构原理和具体做法,普通程序员进阶到编程高手必须修炼的秘笈。重构,一言以蔽之,就是在不改变外部行为的前提下,有条不紊地改善代码。多年前,正是《重构:改善既有代码的设计》原版的出版,使重构终于从编程高手们的小圈子走出,成为众多普通程序员日常开发工作中不可或缺的一部分。《重构:改善既 阅读全文
posted @ 2012-11-20 14:35 bitbit 阅读(812) 评论(0) 推荐(0) 编辑
  2012年11月6日
摘要: /*****************************************CSlot.h****************************************/#include using namespace std;//两相的插头基类class CTwoSlotsPlug{public:virtual void plugIn2Slots() = 0;};//一个实插头类:红色的二相插头class CRed2SlotsPlug : public CTwoSlotsPlug{public:void plugIn2Slots(){coutplugIn2Slots();}};// 阅读全文
posted @ 2012-11-06 11:19 bitbit 阅读(302) 评论(0) 推荐(0) 编辑
摘要: /*****************************************baseobject.h******************************************//*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@我这里写一个非常实用的例子,是我的一个项目的对象基类构造函数的超级简化版本.这个对象的基类构造函数会调用一个initailize函数来初始化一个对象.该initailize中有很多步骤,每一个都由其子类来决定如何初始化@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 阅读全文
posted @ 2012-11-06 11:06 bitbit 阅读(247) 评论(0) 推荐(0) 编辑
摘要: /*************************************CSingleton.h**************************************/#pragma once#include #include using namespace std;class CSingleton{private:CSingleton(){coutusing namespace std;class testSingleton{public:testSingleton(){CSingleton::getSingleton();cout#include "CSingleton 阅读全文
posted @ 2012-11-06 11:02 bitbit 阅读(178) 评论(0) 推荐(0) 编辑