自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 资源 (2)
  • 收藏
  • 关注

转载 How to disable button in Add/Remove Programs?

 1.Create a new entry in the registry during installation. HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Uninstall/YourProgram. 2.The values are of type REG_DWORD and neet to

2009-04-03 10:51:00 618

原创 IOCP的线程池管理

一直很迷惑IOCP是怎么管理线程池的.还有就是GetQueuedCompletionStatus函数和线程池是什么关系,是GetQueuedCompletionStatus通过线程池的线程调用完成请求,还是先调用GetQueuedCompletionStatus得到请求在把请求交给线程池的线程完成的呢?当你创建一个了IOCP,并指定了能并发运行的线程数目(CPU*2).当完成的I/O项进入队列

2007-11-09 17:23:00 6390

原创 iocp

当创建一个完成端口时,内核实际创建了5个不同的数据结构.1.设备列表.用来保存完成端口与设备的关联.通过调用CreateIoCompletionPort完成的. 设备列表保存了hDevice(一个设备句柄,这可以是一个文件、套接字等等),dwCompletionKey(一个完成键,对你有意义的一个32位值,操作系统并不关心你这里传递什么).2.I/O完成队列(FIFO).首先系统会检查设备

2007-11-09 16:22:00 1011

原创 职场杀手锏最冷的10个笑话

1、老师问一同学怎么减少白色污染?同学答:把饭盒做成蓝色2、飞机上,一位空中小姐问一个小女孩说:“为什么飞机飞这么高都不会撞到星星呢?”小女孩回答到:“我知道,因为星星会‘闪’啊!”3、有一只北极熊和一只企鹅在一起耍,企鹅把身上的毛一根一根地拔了下来,拔完之后,对北极熊说:“好冷哦!“北极熊听了,也把自己身上的毛一根一根地拔了下来,转头对企鹅说:“果然很冷!”4、美国人∶你看过

2007-10-24 08:35:00 712

转载 zlib 1.1.4 手册(Published by spark.fandlr )

zlib 1.1.4 手册目录   介绍 <a title="Open this link in new window http://www.4nothing.net/blog/?p=235#Introduction" style="BACKGROUND-COLOR: transparent" href="http://www.4nothing.net/b

2007-09-26 10:40:00 2134

翻译 数据库在C++中使用教程(1)

大家好,本教程数据结构,是使用C++的类编写。它包括解释工作的数据结构,如堆栈,队列,链表,联结队列,联结堆栈,循环链表和二叉树。每个数据结构包含的概念,代码和解释。特别注意二叉树。在本教程中,我假设大家都知道如何使用C++的类进行工作,因为我所有的数据结构,要立足于他们。我遇到过关于数据结构的教程,但是很难找到一个使用OOP来编写的。因此,这其中将主要集中于用一个类来编写数据结构

2007-09-24 20:17:00 1273

原创 苏格拉底对失恋者说的话

苏格拉底对失恋者说的话 By  xjb 发

2007-09-10 08:37:00 848

转载 BASIC DATA STRUCTURES IN C++

--------------------------------------------------------------------------------                        BASIC DATA STRUCTURES IN C++                                                  -Sanchit Karve   

2007-09-07 09:57:00 784

转载 Windows完成端口编程

一 基本概念二 OVERLAPPED数据结构三 完成端口的内部机制创建完成端口完成端口线程的工作原理线程间数据传递线程的安全退出一 基本概念      设备---windows操作系统上允许通信的任何东西,比如文件、目录、串行口、并行口、邮件槽、命名管道、无名管道、套接字、控制台、逻辑磁盘、物理磁盘等。绝大多数与设备打交道的函数都是CreateFile/ReadFile/WriteFile等。所以

2007-09-04 16:26:00 497

转载 Overlapped模型与CompletionPort模型,摘自《Visual C++网络游戏建模与实现》(苏羽、王媛媛编著) 选择自 dtdn 的 Blog

Win32重叠I/O(Overloapped I/O)机制允许发起一个操作,然后在操作完成之后接受到信息。对于那种需要很长时间才能完成的操作来说,重叠I/O机制尤其有用,因为发起重叠操作的线程在重叠请求发出后就可以自由地做别的事情了。    在Windows NT/2000上,提供真正可扩展的I/O模型就是使用完成端口(Completion Port)的重叠I/O。    ……    可以把完成端

2007-08-29 15:00:00 1405

转载 设备I/O之OVERLAPPED

OVERLAPPED,顾名思义为重叠,乍一看会很奇怪,重叠?谁跟谁重叠?似乎在WIN32的Programming中没有这个概念呀?要讨论这个问题就要追溯到对设备I/O的访问中  在WIN32中,用户不能象以前那样直接对硬件进行访问,使得这一层对开发者而言是个"黑盒",而是提供了一组对应的API的接口.让开发者基于提供的接口进行开发,而把低层的访问交给了Driver或者内核.  在WIN32中,设备

2007-08-29 14:49:00 560

转载 很幽默的讲解六种Socket I/O模型

本文简单介绍了当前Windows支持的各种Socket I/O模型,如果你发现其中存在什么错误请务必赐教。一:select模型二:WSAAsyncSelect模型三:WSAEventSelect模型四:Overlapped I/O 事件通知模型五:Overlapped I/O 完成例程模型六:IOCP模型老陈有一个在外地工作的女儿,不能经常回来,老陈和她通过信件联系。他们的信会被邮递员投递到他们的

2007-08-23 12:12:00 541

转载 C++ 概念两则

I.声明和定义声明 是将一个名称引入一个程序.定义 提供了一个实体在程序中的唯一描述.声明在单个作用域内可以重复多次(类成员除外),定义在一个给定的作用域内只能出现一次.一个定义就是一个声明,除非:它定义了类的一个静态数据成员. 它定义了类的非内联成员函数. II.内部连接和外部连接当一个实现文件(.cpp ...)编译时,预处理器(CPP)首先递归的包含头文件

2007-08-23 08:55:00 540

转载 完成端口模型代码

最近要做一个网络方面的小东东,基于C/S模式的。都说IOCP可以使系统达到最佳的性能,因此我就比划了两下,献丑了。抄书开始。    从本质上说,完成端口模型要求创建一个windows完成端口对象,该对象通过指定数量的线程,对重叠I/O请求进行管理,以便为已经完成的重叠I/O请求提供服务。    首先要创建一个I/O完成端口对象,用它面向任意数量的套接字句柄,管理多个I/O请求。调用以下函数创建

2007-08-22 15:35:00 1996

转载 重叠io操作

第一章 一. 重叠模型的优点 1. 可以运行在支持Winsock2的所有Windows平台 ,而不像完成端口只是支持NT系统。 2. 比起阻塞、select、WSAAsyncSelect以及WSAEventSelect等模型,重叠I/O(Overlapped I/O)模型使应用程序能达到更佳的系统性能。 因为它和这4种模型不同的是,使用重叠模型的应用程序通知缓冲区收发系统直接使用数据,也就是说,如

2007-08-08 09:18:00 4531 3

转载 详细讲解 Linux操作系统下文件解压缩的技巧

 <!---->  

2007-07-29 09:43:00 649

转载 __declspec(dllimport) 到底有什么用?

我相信写WIN32程序的人,做过DLL,都会很清楚__declspec(dllexport)的作用,它就是为了省掉在DEF文件中手工定义导出哪些函数的一个方法。当然,如果你的DLL里全是C++的类的话,你无法在DEF里指定导出的函数,只能用__declspec(dllexport)导出类。但是,MSDN文档里面,对于__declspec(dllimport)的说明让人感觉有点奇怪,先来看看MSDN

2007-07-25 11:47:00 1290 1

原创 epoll的安装和调试

又是一件折腾了我一天的事情。其实epoll代码早就会写了,lib里面早就支持了epoll,但一直停留在“支持”阶段。实际上却是没有用起来过。公司装了一台机器,里面有epoll.h和epoll.a,但核心却不是2.6,所以机器上能编译但不能运行。另外一台机器升级了内核,但却怎么也找不到epoll.h和epoll.a。所以郁闷了很久,于是下定决心,要把这个问题搞个清楚。终于,在向东博士的帮助下,把问题

2007-07-23 10:55:00 4365

原创 linux2.6内核epoll用法举例说明

epoll用到的所有函数都是在头文件sys/epoll.h中声明的,下面简要说明所用到的数据结构和函数:所用到的数据结构typedef union epoll_data {void *ptr;int fd;__uint32_t u32;__uint64_t u64;} epoll_data_t;struct epoll_event {__uint32_t events; /* Epoll even

2007-07-23 10:44:00 723

转载 完成端口模式下的高性能网络服务器

1开始完成端口听起来好像很神秘和复杂,其实并没有想象的那么难。这方面的文章在论坛上能找到的我差不多都看过,写得好点的就是CSDN.NET上看到的一组系列文章,不过我认为它只是简单的翻译了一下Network Programming for Microsoft Windows 2nd 中的相关内容,附上的代码好像不是原书中的,可能是另一本外文书里的。我看了以后,觉得还不如看原版的更容易理解。所以在我的

2007-07-23 10:02:00 800

原创 完成端口的深入理解及一种变态用法

作为WIN平台下同时管理数千个连接的最为高效的网络模型,完成端口已经被越来越多的人认识和熟悉。通常情况下,一种经典的完成端口使用模式是:  (1)创建完成端口,并在指定端口开始监听;  (2)创建接受连接线程,用accept或acceptEx接受客户端连接;  (3)创建工作者线程,处理客户端的数据收发。    众所周知,CreateIoCompletionPort函数,有两个作用,一是“创建”一

2007-07-20 15:29:00 814 1

原创 Winsock 完成端口模型简介

 摘自《Networking Programming for Microsoft Windows》第八章“完成端口”模型是迄今为止最为复杂的一种I/O模型。然而,假若一个应用程序同时需要管理为数众多的套接字,那么采用这种模型,往往可以达到最佳的系统性能!从本质上说,完成端口模型要求我们创建一个Win32完成端口对象,通过指定数量的线程,对重叠I/O请求进行管理,以便为已经完成的重叠I/

2007-07-20 15:28:00 738 3

原创 C++ virtual

【1】  虚成员函数和非虚成员函数调用方式有什么不同?    非虚成员函数是静态确定的。也就是说,该成员函数(在编译时)被静态地选择,该选择基于指向对象的指针(或引用)的类型。 相比而言,虚成员函数是动态确定的(在运行时)。也就是说,成员函数(在运行时)被动态地选择,该选择基于对象的类型,而不是指向该对象的指针/引用的类型。这被称作“动态绑定/动态联编”。大多数的编译器使用以下的一些的技术,也就是

2007-07-19 12:08:00 554

转载 C++关键字(static/register/atuo/extern/volatile/const)释疑

 下面关于C++的几个关键字是经常和我们打交道的而我们又经常对这些含糊不清的,本文根据自己的学习体会作以总结,以期达到真正理解和活用的目的。staticl         静态变量作用范围在一个文件内,程序开始时分配空间,结束时释放空间,默认初始化为0,使用时可改变其值。l         静态变量或静态函数,即只有本文件内的代码才可访问它,它的名字(变量名或函数名)在其它文件中不

2007-07-19 11:41:00 397

原创 c++静态成员小结,c++,static

 静态类成员包括静态数据成员和静态函数成员两部分。             一   静态数据成员:             类体中的数据成员的声明前加上static关键字,该数据成员就成为了该类的静态数据成员。和其他数据成员一样,静态数据成员也遵守public/protected/private访问规则。同时,静态数据成员还具有以下特点:               1.静态数据成员的定义。  

2007-07-19 11:38:00 566

转载 如何判别可变参数函数的参数类型?

一、什么是可变参数我们在C语言编程中有时会遇到一些参数个数可变的函数,例如printf()函数,其函数原型为: int printf( const char* format, ...); 它除了有一个参数format固定以外,后面跟的参数的个数和类型是可变的(用三个点“…”做参数占位符),实际调用时可以有以下的形式: printf("%d",i); printf("

2007-06-27 21:18:00 1520

转载 线程同步

用户方式同步具有速度快的优点。但是它的缺点特是显而易见的。首先,用互锁函数家族的时候,这些函数只能用在单值数据上 如果用关键代码段的话,只能对单个进程中的线程进行同步。而且容易出现死琐,而且不能设置等待时间那么内核对象就克服了用户方式同步的几个缺点,能够在不同进程间对线程实施同步,而且处理完全不止在单值数据上。但是内核方式同步线程时,必须将线程进入到内核方式,这样就使处理速度大大降低。这也是内

2007-06-19 22:42:00 563

程序设计实践

程序设计实践:程序设计实践

2007-05-16

Windows 2000 编程技术内幕

Windows 2000 编程技术内幕

2007-05-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除