自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(163)
  • 资源 (61)
  • 收藏
  • 关注

翻译 WinSock五种I/O模型性能分析

五种I/O模型的性能分析重叠I/O模型的另外几个优点在于,微软针对重叠I/O模型提供了一些特有的扩展函数。当使用重叠I/O模型时,可以选择使用不同的完成通知方式。采用事件对象通知的重叠I/O模型是不可伸缩的,因为针对发出WSAWaitForMultipleEvents调用的每个线程,该I/O模型一次最多都只能支持6 4个套接字。假如想让这个模型同时管理不止64个套接字,必须创建额外的工作者

2009-12-27 18:54:00 3193 1

原创 应用层通信协议开发浅析

通信协议精确地定义了双方通信控制信息和解释信息。协议反映的是对等层的对等实体之间的一种横向关系,严格地说,协议是对等实体共同遵守的规则和约定的集合。

2009-12-27 15:20:00 21527 8

原创 WinSock完成端口I/O模型

完成端口对象取代了WSAAsyncSelect中的消息驱动和WSAEventSelect中的事件对象,当然完成端口模型的内部机制要比WSAAsyncSelect和WSAEventSelect模型复杂得多。

2009-12-27 14:50:00 6639 3

翻译 深度探索I/O完成端口

引言要想编写一个高性能的服务器应用程序,必须实现一个高效的线程模型。让太少或者太多的服务器线程来处理客户的请求,都可能导致性能问题。例如,如果一个服务器创建单个线程来处理所有的请求,那么客户端可能长期等待而得不到响应,因为服务器同一时刻只能忙于处理一个请求。当然单个线程也能并发处理多个请求,当I/O操作被启动时,它可以从一个请求切换到另一个请求,但是这种结构相当复杂,并且不能充分利用多处理器的

2009-12-27 14:47:00 4982

原创 WinSock重叠I/O模型

一.重叠I/O模型的概念当调用ReadFile()和WriteFile()时,如果最后一个参数lpOverlapped设置为NULL,那么线程就阻塞在这里,直到读写完指定的数据后,它们才返回。这样在读写大文件的时候,很多时间都浪费在等待ReadFile()和WriteFile()的返回上面。如果ReadFile()和WriteFile()是往管道里读写数据,那么有可能阻塞得更久,导致程序性能下

2009-12-27 14:41:00 5982

原创 WinSock三种选择I/O模型

select模型本质上是一种分类处理思想,预先声明几个FD_SET(fd_set结构)集合(使用FD_ZERO初始化),例如ReadSet、WriteSet,fd_set数据类型本质上代表着一系列按关注事件分类的套接字集合。本文讨论三种选择模型(都带select,姑且这样称呼):select(选择)、WSAAsyncSelect(异步选择)、WSAEventSelect(事件选择)。

2009-12-27 14:38:00 5572

原创 WinSock编程基础

在 UNIX 系统中,任何 I/O 操作都是通过读写文件描述符(File Descriptor)来实现的。网络通信 I/O 机制也是基于文件描述符来定义实现的。鉴于 WinSock 1 是 WinSock 2 的功能子集,而 WinSock 1 又沿袭兼容 Berkeley Socket API 集,故本文基于 WinSock 1 讲述 socket 编程基础,着重梳理周边背景知识及通用通信流程。

2009-12-27 14:30:00 63720 11

原创 socket基本概念及C/S通信模式

套接字,简单的说就是通信双方的一种约定,用套接字中的相关函数来完成通信过程。应用层通过传输层进行数据通信时,TCP和UDP会遇到同时为多个应用程序进程提供并发服务的问题。本文初步梳理了socket相关概念和模式。

2009-12-27 14:20:00 11885

原创 TCP连接与关闭过程

TCP 三次握手建立连接 & 四次挥手断开连接

2009-12-27 14:13:00 10211 1

转载 TCP/IP数据报格式

IP数据报格式IP数据报(datagram)的头部格式如下:Version:4 bits版本字段标明建立数据报的IP版本,目前的IP版本是IPv4,IPv6正在发展中。IPv4:0100。IHL:4 bitsIP数据报头部长度(Internet Header Length),其度量单位为4 Bytes(32 bits),因此IHL始终是4 Bytes(32 bi...

2009-12-27 14:08:00 4702 1

原创 I/O管理器及IRP缓冲区管理

I/O管理器 I/O 管理器定义了有序的结构,或者说是模型,在这个模型里将I/O请求发送给设备驱动程序。I/O系统是包驱动的,大部分I/O请求用I/O请求包(IRP)代表,从一个I/O系统组件传送到另一个组件。(注意:快速I/O不是IRP。)这种设计允许一个应用程序线程可以同时管理多个I/O请求。一个IRP是一个数据结构,包含了完整地描述一个I/O请求的信息。(可以通过Windbg内核调试扩展

2009-12-26 22:36:00 2384

原创 线程的调度

概述Windows 实现了一个由优先级驱动,抢占式的调度系统,也就是最高优先级的可运行的(就绪状态下的)线程总是先运行。 有一种现象称之为“处理器亲合(processor affinity)”,即线程可能受处理器限制,只运行在那些允许它运行的处理器上。缺省的设置是线程可运行在任何可用的处理器上,用户可以通过使用一个Win32的调度函数修改处理器的“亲合性”。 当一个线程被选择运行,它所

2009-12-26 22:26:00 13616

原创 线程的数据结构

除非显式地声明,否则,你可以假设以下讨论的内容既适合用户模式的线程,也适用于内核模式的线程。在系统级别上,Windows线程是由一个线程块执行体(ETHREAD)来表示的,如图6.7所示。ETHREAD块和它所指向的结构都位于系统地址空间中,唯一的例外是线程环境快(TEB),它位于进程地址空间中。而且,Windows子系统进程(Csrss)为Windows进程中创建的每个线程维护了一个平行结构

2009-12-26 22:24:00 7873

原创 MFC GDI坐标映射例解

(1)建立单文档MFC项目Draw:NewàProjectsàMFC AppWizard(EXE)àSingle Document。(2)找到CMainFrame::PreCreateWindow函数,在其中设置默认窗口大小为400 pixel*300 pixel。BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs){    if(

2009-12-26 21:54:00 3833

原创 MFC GDI绘图基础

一.关于GDI的基本概念什么是GDI?Windows绘图的实质就是利用Windows提供的图形设备接口GDI(Graphics Device Interface)将图形绘制在显示器上。在Windows操作系统中,动态链接库C:/WINDOWS/system32/gdi32.dll(GDI Client DLL)中定义了GDI函数,实现与设备无关的包括屏幕上输出像素、在打印机上输出硬拷贝

2009-12-26 21:39:00 19661 1

原创 Windows编程之MFC向导程序框架

1.使用MFC AppWizard生成一个单文档应用程序框架。(1)启动Visual Studio 6.0(2) 文件->新建->项目->MFC AppWizard(exe)->输入项目名称MySDI(3) Step1,选择Single Document。(4) Step2~6,选择默认。(5) F7,Build MySDI.exe即可运行。     2.MFC程序框架

2009-12-26 21:07:00 4103

原创 Windows编程之MFC窗口程序浅析

 除了传统的SDK方式编写Windows应用程序外,还可以使用微软的基础类库MFC。它采用C++程序设计语言对SDK函数进行包装,使Windows下的C语言程序设计,成为面向对象的MFC。以下为MFC窗口应用程序框架示例及解析。 1.建立Win32项目FirstMFC打开Visual Studio 2005à文件à新建à项目àVisual C++àwin32àwin32项目àwin

2009-12-26 20:54:00 11295

原创 Windows编程之SDK窗口程序浅析

      #include BOOL InitWindowsClass(HINSTANCE hInstance); // 注册窗口类BOOL InitWindows(HINSTANCE hInstance, int nCmdShow); // 创建窗口LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LP

2009-12-26 20:44:00 3976

原创 Windows编程之从控制台到SDK窗口

1.典型C/C++程序/*HelloC.c*/#includeint main(int argc, char *argv[]){ printf("Hello C!/n"); return 0;}// HelloCPP1.cpp#includeint main(int argc, char *argv[]){ std::cout

2009-12-26 20:38:00 3788 1

原创 Windows编程之基础概念篇

一.几个What什么是API?API是英文 Application Programming Interface 的简称,意为“应用程序接口”,泛指系统为应用程序提供的一系列接口函数。Windows API是Windows操作系统与应用程序之间的标准接口,它提供了上千个API标准函数、宏和数据结构。在使用VB,VC,Dephi编写应用程序时都可以调用Windows API函数。 什么是S

2009-12-26 20:32:00 1835 1

原创 由MessageBox透视Win32 API的调用

下面我们来看看Windows平台下应用程序是怎么调用Windows提供的底层API服务运行的。 我们编写Win32SDK程序时,需要弹出对话框以作出友好的选择,MessageBox这个API函数就可以实现该功能。在开头要添加,因为其包含了众多的API函数声明头文件。为了探究这个小小的MessageBox是怎么弹出来的,我们右击MessageBox,选择“Go to definition of

2009-12-26 20:21:00 6102 1

原创 从char/wchar_t到TCHAR

为什么要使用UNICODE?(1) 可以很容易地在不同语言之间进行数据交换。(2) 使你能够分配支持所有语言的单个二进制.exe文件或DLL文件。 (3) 提高应用程序的运行效率。

2009-12-26 20:08:00 7517 2

原创 Windows/MFC数据类型

#define FALSE   0           afx.h#define TRUE    1           afx.h#define NULL    0           afx.htypedef void                VOID        winnt.h // 短整型typedef unsigned shorttypedef unsig

2009-12-26 20:01:00 1957 2

原创 Visual C++ 2005使用入门

功能强大的Visual studio 2005 IDE庞大的开发环境和N多的配置设置,学习起来还不是很简单。C++/CLI通过对ISO C++ 标准的纯粹扩展和新语法,不像传统的MS-DOS 控制台程序,所以对于新手,首先应弄明白怎样在Visual studio 2005开发环境下编译常规控制台应用程序及Windows应用程序。 1)win32控制台应用程序文件à新建à项目à Visu

2009-12-26 19:44:00 3568

原创 VC项目配置基础

本文系统梳理了Visual Studio IDE日常配置和使用知技。

2009-12-26 19:19:00 20219 8

转载 堆和栈的区别

堆和栈的区别

2009-12-26 15:29:00 11531 1

原创 多重继承和虚基类

//派生类成员函数对基类成员函数的覆盖#include "stdafx.h"#includeclass A{public:     void Show()     {         std::cout"A::Show/n";     }}; class B:public A{public:     void Show()     {

2009-12-26 15:18:00 1642

原创 C++继承

(1)派生方式class 派生类名>:[派生方式]基类名>{        //派生类新增成员的声明}在上述派生类的定义中,“派生方式”决定了基类成员在派生类中的访问权限。派生的方式共有public、private、protected(默认派生方式为private)。     虽然派生类继承了基类的所有成员,但是为了不破坏基类的封装性,无论采用哪种继承方式,基类的私有(pr

2009-12-26 15:11:00 1317

原创 C++构造函数和析构函数

(1)构造函数、析构函数与赋值函数构造函数、析构函数与赋值函数是每个类最基本的函数。它们太普通以致让人容易麻痹大意,其实这些貌似简单的函数就象没有顶盖的下水道那样危险。每个类只有一个析构函数和一个赋值函数,但可以有多个构造函数(包含一个拷贝构造函数,其它的称为普通构造函数)。对于任意一个类A,如果不想编写上述函数,C++编译器将自动为A 产生四个缺省的函数,例如:A(void);

2009-12-26 15:01:00 2628

原创 define、const&inline

define、const&inline

2009-12-26 14:42:00 1791 1

原创 野指针小结

1.指针的初始化指针变量的零值是“空”(记为NULL)。在中#define NULL 0,尽管NULL 的值与0 相同,但是两者意义不同。假设指针变量的名字为p,它与零值比较的标准if 语句如下:if (p == NULL) // p 与NULL 显式比较,强调p 是指针变量。当我们试图析取(dereference)一个空指针NULL时,例如int *p = NULL;当我们试图cou

2009-12-26 14:34:00 2163

原创 函数指针与指针传参

1.函数指针(1)函数指针的声明函数指针形式说明如下:返回类型>(*指针变量名)(形参列表);其调用格式如下所示:int max(int x,int y); // 定义函数maxint (*funcp)() = max;//定义返回值为整型的函数指针funcp = max;//函数名同数组名一样隐式转换为函数入口地址),funcp指向函数

2009-12-26 14:30:00 8536

原创 字符串与指针

字符/0和0的区别字符’0’对应的ASCII码为十六进制30;而’/0’即为ASCII码中的0,其对应字符空字符NUL。     char c = /0;çèchar c = 0 // NUL     char c = 0;çèchar c = 48;最典型如memset函数:void *memset( void *buffer, int ch, size_t co

2009-12-26 14:28:00 7898 1

原创 数组与指针

一个不带下标的数组名就是一个指向此数组的指针,具体来说就是第一个数组元素的地址。当一个指针变量被初始化为数组名时,就说该指针变量指向了数组(首元素)。

2009-12-26 14:21:00 1976 1

原创 指针的基本概念

指针:变量的指针,指针变量;指针变量的引用,指针数组,指针的指针。

2009-12-26 14:04:00 2478 1

原创 字节存储单元及struct内存分配

当今的计算机系统使用的基本上都是由18世纪德国数理哲学大师莱布尼兹发现的二进制系统。二进制数字系统中只有两种二进制数码——0和1。“bit”(比特)被创造出来代表“binary digit”,1bit代表一个二进制数位。在有限范围内的可计量数值几乎都可以用二进制数码串组合表示,计算机的内存由数以亿万计的比特位存储单元(晶体管)组成。由于一个位只能表示二元数值,所以单独一位的用处不大。通常将许多位组成一组作为一个基本存储单位,这样就可以存储范围较大的值。

2009-12-26 13:35:00 9466 3

原创 C++ Library

SGI -- Silicon Graphics[Computer System] Inc.硅图[计算机系统]公司.STL -- Standard Template Library,标准模板库。

2009-12-26 13:31:00 4033

原创 C++ Storage Classes, Scope and Lifetime

在C语言中,每一个变量都有两个属性:数据类型(Variable Types)和存储类型(Storage Classes)。存储类型则指变量在内存中的存储方式,它决定了变量的作用域(Scope)和生存期(Lifetime)。

2009-12-26 13:26:00 2131

原创 C++ Variable Types

在C语言中,每一个变量都有两个属性:数据类型(Variable Types)和存储类型(Storage Classes)。数据类型即常说的字符型、整型、浮点型。

2009-12-26 13:05:00 2907 1

原创 C++ Toolchains

C/C++ 工具链:vc/gcc/clang

2009-12-26 12:55:00 3744

https访问github.com的Wireshark抓包文件

https访问github.com的wireshark抓包,《HTTPs握手流程抓包解析》中结合该抓包详细分析典型的 TLS 握手流程。

2017-06-04

2-iPhoto导出iPhone相册

博客《Mac/iPhone 多媒体(图片、音视频)处理》图床。

2016-05-16

Source Insight

Source Insight 3.50.0029

2013-09-15

设计模式参考资料

1.GoF23种设计模式解析.pdf 2.面向对象的设计模式(C++).pdf 3.C#设计模式.pdf+随书源代码 4.设计模式--可复用面向对象软件的基础.pdf

2013-06-07

MIPS存储管理结构及Linux代码分析

WindRiver的《MIPS存储管理结构及Linux代码分析.pdf》

2013-05-23

vxWorks Developer's Guide

网上搜索到的VxWorks官方BSP开发和调试指南,比较有参考价值。 vxworks_bsp_developers_guide_6.0.pdf Understanding the bootrom image - Debugging tips for vxWorks Bootrom images.pdf

2013-05-13

嵌入式系统VxWorks的启动流程

本节主要讲述基于VxWorks的嵌入式软件的启动流程

2013-05-05

Realtek的rtl8196c_datasheet和sdk指南

网上搜到的关于realtek开发方面的一点资料: RTL8196C-GR-0.7.pdf(源自百度) Realtek Kernel 2.6 SDK User Guide.pdf(源自CSDN)

2013-04-26

AR9331_DataSheet

ATHEROS DataSheet PRELIMINARY December 2010 AR9331 Highly-Integrated and Cost Effective IEEE 802.11n 1x1 2.4GHz SoC for AP and Router Platforms 来源:新浪共享、百度文库

2013-04-25

MIPS Assembly Language

1.MIPS Assembly Language (1).MIPS Assembly Language.pdf (2).MIPS Assembly Language Programmer's Guide.pdf (3).MIPS Assembly Language Programming(CS50 Discussion and Project Book).pdf 2.龙芯2E体系结构 (1).龙芯2E体系结构概述.pdf (2).龙芯2E体系结构与编程.pdf

2013-04-25

VxWorks END模型及示例代码

Tornado Device Driver Workshop Training Lab chap10-Enhanced Network.ppt app_E-END Coding Examples.ppt

2013-04-25

VxWorks BSP Pre-Kernel Init and Boot

Tornado BSP Training Workshop Chapter 4: <Pre-Kernel Initialization Overview> Chapter 5: <Pre-Kernel Initialization – Boot Specific Code>

2013-04-25

VxWorks启动流程

从网上搜集的关于VxWorks启动流程的文档,学习VxWorks的同学可以参考一下。由于VxWorks的映象有多种,要结合实际开发的映象类型思考,不能囿于纸上所述。 《VxWorks Boot Sequence.pdf》 《VxWorks系统的BSP概念及启动过程.pdf》 《VxWorks系统的映像及其装载过程解析.pdf》

2013-04-25

Intel80x86 OPCODEs - 80x86机器码汇编对照表

Intel Architecture Software Developer's Manual Volume 2:Instruction Set Reference

2013-04-21

MikroTik RouterOS安装及配置图解教程

1-在VmWare中安装RouterOS 3.22 VMDK镜像.doc 2-在VmWare中配置RouterOS.doc 3-使用winbox配置DHCP和PPPoE服务器.doc

2011-12-01

TLV应用层协议开发示例

《应用层通信协议开发浅析》博文代码: 基于TLV的应用层协议开发示例。

2011-10-27

NeHe OpenGL Tutorial

NeHe_OpenGL_Tutorial_1-48(en+cn+code)

2011-07-19

GLUT3.7+GLEW1.6

GLUT3.7+GLEW1.6+使用说明

2011-07-16

QoS参考资料.part1

1.QoS Summarization 2.TC Configuration 3.QoS Framework 4.QoS Reference 5.QoS Papers 6.QoS Testing

2011-06-26

QoS参考资料.part2

1.QoS Summarization 2.TC Configuration 3.QoS Framework 4.QoS Reference 5.QoS Papers 6.QoS Testing

2011-06-26

《A Simple IOCP Server/Client Class》

codeproject 《A Simple IOCP Server/Client Class》 整理修改版

2011-01-14

windows网络编程技术2(Anthony Jones&Jim Ohlund所著英语chm)

Network Programming for Windows 2.CHM

2010-12-13

windows网络编程技术1(Anthony Jones&Jim Ohlund+英语chm+中文pdf+code)

Network Programming for Windows 1.CHM+WINDOWS网络编程技术1.pdf+code

2010-12-13

live555的源码(已配置VC可编译工程)

已经配置好的VC6、VC8、Mobile 6的可编译工程代码,包含配置以及mediaServer/openRTSP测试说明文档。

2010-12-12

Rational Rose 2003绘制C++类图简单示例图解

Rational Rose 2003软件安装+软件使用+逆向工程绘制C++类视图实例

2010-12-08

数据结构(严蔚敏)(扫描PDF+习题答案chm+C代码实现)

数据结构C语言版(扫描版).pdf 清华大学严蔚敏数据结构习题集(C版)答案.chm 算法实现C代码

2010-12-06

数据结构C语言版(陈峰棋)pdf.part2

数据结构C语言版(扫描版).pdf 中国铁道出版社出版 资讯小组编著 陈峰棋策划 这本书内容翔实,简单易懂,结合源代码(非伪代码)详细解析每一步骤。 我学数据结构时,在图书馆翻出来的,觉得是不错的参考资料。但这本书似乎已绝版,想买也买不到了。

2010-12-06

数据结构C语言版(陈峰棋).pdf.part1

数据结构C语言版(扫描版).pdf 中国铁道出版社出版 资讯小组编著 陈峰棋策划 这本书内容翔实,简单易懂,结合源代码(非伪代码)详细解析每一步骤。 我学数据结构时,在图书馆翻出来的,觉得是不错的参考资料。但这本书似乎已绝版,想买也买不到了。

2010-12-06

Standard C-C++ Reference

ISO/IEC 9899/1999 (E)-Programming languages—C.pdf ISO/IEC 14882-Programming languages—C++.pdf The New C Standard (C90 and C++).pdf Working Draft, Standard for Programming Language C++.pdf

2010-12-06

Windows程序设计(Charles Petzold)

Programming Windows.chm+Windows程序设计2.chm+code 公认的Windows程序设计经典之作。 本人有第五版中文扫描PDF,由于文件较大未能上传,需要者留言留邮箱。

2010-12-06

Windows程序设计(王艳平)

Windows程序设计(王艳平).pdf+code 王艳平的《Windows程序设计》整合了以上WINDOWS核心编程、Windows程序设计、MFC深入浅出这三本书,个人觉得还是可以作为学习VC的一份参考。

2010-12-03

MFC深入浅出(李进久).chm

大陆李进久写的《MFC深入浅出》比台湾侯捷写的《深入浅出MFC》早,个人觉得侯捷写的《深入浅出MFC》其实只是对MFC源码做了个扫描梳理,而李进久的《MFC深入浅出》则围绕源代码剖析了MFC实现机制,带领读者从MFC设计到MFC编程。

2010-12-03

WINDOWS核心编程(Jeffrey Richter)

Programming_Applications_for_Microsoft_Windows.chm+WINDOWS核心编程.chm+code4+code5 《Windows核心编程》是围绕Windows内核对象及API讲解Windows内核机理及编程方法。

2010-12-03

Windows 2000系统编程.pdf

本书用专业的语言详细地讲解了Windows 2000系统编程的基本概念、技术及最新的相关内容。通过实例研究,进一步向读者讲述了Windows 2000的多线程操作、同步、进程间通信、安全性、虚拟存储管理及连网操作。使读者能够从实践中掌握Windows 2000的特性,编写更有效和更有用的程序。 本书讲的是Windows 2000,但Windows基本内核具有延续性,本书循循善诱配以代码示例,某些章节极具参考性。 章节如下: 01-纵览Windows 2000.pdf 02-ActiveX 配套工具.pdf 03-进程、线程和纤程.pdf 04-同步.pdf 05-文件IO.pdf

2010-12-03

Programming Visual C++.chm

Programming Visual C++(Visual C++ 6.0 技术内幕) 学习Visual C++的经典之作。

2010-12-03

MFC类库详解及结构体系图

MFC4_21.jpg MFC6_0.jpg MFC7_0.jpg MFC类库详解.chm

2010-12-03

Developing user interfaces for Microsoft Windows.chm

书名:Developing user interfaces for Microsoft Windows 作者:Everett N.McKay. 微软自己出版的windows图形界面开发指导书籍。

2010-12-03

深入探索C++对象模型

C++对象模型.chm 深度探索C++对象模型.pdf Inside the C++ Object Model.chm

2010-12-01

The C/C++ Programming Language

The C programming Language.chm The_C_Programming_Language.pdf Learning Standard C++ as a New Language.pdf The C++ Programming Language 3(Bjarne Stroustrup).pdf

2010-12-01

C+The+Complete+Reference+4th.pdf

C+The+Complete+Reference+4th.pdf

2010-12-01

空空如也

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

TA关注的人

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