摘要: 在MFC程序中,我们并不经常直接调用Windows API,而是从MFC类创建对象并调用属于这些对象的成员函数.也就是说MFC封装了Windows API 你说你喜欢C++而MFC换一种说法就是一个用C++写的一个函数库 然后你来调用 只不过这个类不是你写的 MFC提供数百个类,最重要的、也是编写任何VC++应用程序都必不可少的两个类CWinApp和CFrameWnd,这两个类是编写复杂庞大应用程序的基石。1>封装特性:构成MFC框架的是MFC类库而MFC类库又是C++的一个类库。这些类封装WIN32应用程序编程接口,OLE(Object Link Embed 对象链接嵌入)特性,ODB 阅读全文
posted @ 2011-04-15 16:37 山河 阅读(299) 评论(0) 推荐(1)
摘要: CBitmap m_bitmap; //对象m_bitmap.LoadBitmap(IDB_SPLASH);//加载void CSplashWnd::OnPaint(){CPaintDC dc(this);CDC dcImage;if (!dcImage.CreateCompatibleDC(&dc))//创建内存设备环境 return;BITMAP bm;m_bitmap.GetBitmap(&bm);// Paint the image.CBitmap* pOldBitmap = dcImage.SelectObject(&m_bitmap);//这里把m_bitm 阅读全文
posted @ 2011-04-15 16:36 山河 阅读(972) 评论(0) 推荐(0)
摘要: .NET Framework 具有两个主要组件:公共语言运行库和 .NET Framework类库。语言 Visual Studio .NET 自身包含四种语言:Visual Basic、Visual C++、Visual C# 和 JScript。然而,.NET 框架的模块化特性使得由第三方创作的其他语言也可以集成到 Visual Studio .NET 中。此类语言有 20 多种,包括 Perl、Component Pascal、SmallScript 和 Smalltalk。 公共语言规范 此规范是实现 .NET 框架的所有语言的基础,定义了公共类型系统的标准和所有语言必须实现的功能。这 阅读全文
posted @ 2011-04-15 16:35 山河 阅读(301) 评论(0) 推荐(0)
摘要: 首先要明确的一点,事件可以看成一个字段,或者一个属性。一个类有一个Event类型的字段,就说明他拥有一个事件,而Event类型需要定义一个委托delegate类型所以,Net中的事件处理模型可以归纳如下:1.定义需要的委托类型 2.在需要定义事件的类EventClass中定义事件属性3.在需要处理事件的类ProcessEventClass中根据相应的委托类型定义事件处理函数4.注册事件处理程序,并根据不同的情况激活示例程序如下:using System;using System.Collections.Generic;using System.Text;namespace EventExamp 阅读全文
posted @ 2011-04-15 16:35 山河 阅读(163) 评论(0) 推荐(0)
摘要: 1、所见即所得。2、基于公共语言运行时,可以无缝使用基础库、消息机制、数据接口。3、简单的文件拷贝和文件配置即可完成网站搭建。4、Asp.net技术联动IIS的多处理器技术,使网站运行在多处理器环境里。5、自定义组件。6、基于windows的安全认证技术。7、web前端-->IIS服务器-->.net framework-->数据库。8、服务器端一次编译多次运行(asp即时解释程序)。9、asp.net可以使用常用的html编辑工具、web前端工具(Dream wave、visual studio等)实现快速开发。10、web服务器基于iocp技术和http协议的http l 阅读全文
posted @ 2011-04-15 16:34 山河 阅读(542) 评论(0) 推荐(0)
摘要: 1、载入png绘图 Bitmap bitmap = new Bitmap(frameWidth, frameHeight); Graphics g = Graphics.FromImage(bitmap); g.DrawImage(Image , new Rectangle(0, 0, bitmap.Width, bitmap.Height), new Rectangle(frameWidth * frame, 0, frameWidth, frameHeight), GraphicsUnit.Pixel);2、创建内存设备上下文环境 IntPtr screenDC = Win32.GetDC 阅读全文
posted @ 2011-04-15 16:34 山河 阅读(246) 评论(0) 推荐(0)
摘要: Visual Studio 是微软公司推出的开发环境,也是目前最流行的 Windows 平台应用程序开发环境。MID平台,基于Intel Atom处理器和Windows xp操作系统下的应用软件可以使用开发工具visual studio 2008。 基本功能 开发windows应用程序、web应用程序、智能设备应用程序、网络服务和office插件等,集编码、编译、调试和运行于一体。版本vs 2008是其开发的9.0版本,当前最新版本为10.0即vs 2010。版本分类Visual Studio 2008 Express EditionVisual Studio 2008 Standard Ed 阅读全文
posted @ 2011-04-15 16:33 山河 阅读(321) 评论(0) 推荐(0)
摘要: 29. vc编译器对c函数默认的调用方式是_cdecl方式,函数参数按照从右向左的顺序入栈,被调函数出栈即可顺序使用参数。函数调用者负责清除栈中的参数。此方式支持了c标准中的可变参数函数调用。30. C#的完全基于.net framework (公共语言运行时CLR)的托管代码,其对象内存资源由框架负责管理。使用.net framework托管的代码编译生成中间语言,启动后由框架处理形成机器码,程序的整个声明周期交由框架负责而不是操作系统。这与c++写的非托管代码由操作系统(准确说是c运行时、c++标准库)负责调度是不同的。非托管代码需要手动释放内存资源,而托管是无需也不能干预的。31. .n 阅读全文
posted @ 2011-04-15 16:32 山河 阅读(167) 评论(0) 推荐(0)
摘要: CRT应该是严格遵守C89或C99的,他应具备与操作系统无关的跨平台特性。任何个人和组织都可以基于ANSI 标准C开发出一套支持上层软件或系统开发的、反复使用、通用的CRT.诚如microsoft的windows开发同样要使用CRT和编译器。只是microsoft把操作系统的一些API加入CRT并公之于众,这样大大利于用户于其操作系统上开发---即可以使用CRT又可以使用上层api,系统有用户了用户也可便利开发软件了,这显然是合理的。也就是这样,他给我带来了假象,仿佛CRT是使用windows api开发出来似的。当然这是不对的,只是mc把CRL添加、包装(lib,dll)后方便大家使用和开发 阅读全文
posted @ 2011-04-15 16:32 山河 阅读(288) 评论(0) 推荐(0)
摘要: Assembly Manifest 通俗简易手册恩,为了大家都能很方便的理解,我将尽量简单通俗地进行描述。[现象]对这个问题的研究是起源于这么一个现象:当你用VC++2005(或者其它.NET)写程序后,在自己的计算机上能毫无问题地运行,但是当把此exe文件拷贝到别人电脑上时,便不能运行了,大致的错误提示如下:应用程序配置不正确,请重新安装程序……或者是MSVCR80D.dll 没有找到什么的(我记得不是很清楚,不过大致是这样的)[分析]看到这样的提示,当然不会傻到重装咯。第一反应应该是什么配置有问题、或者是缺少了什么依赖的库文件;于是我就根据以前Windows缺少库文件的经验,把所有库文件( 阅读全文
posted @ 2011-04-15 16:31 山河 阅读(490) 评论(0) 推荐(0)
摘要: Thread NetServer = new Thread(new ThreadStart(NetServerThreadFunc)); NetServer.Start(); WPF工程里,此线程不可以操作UI元素,避免方法如下:1、public delegate void DeleFunc(); public void Func() { //使用ui元素 } 线程函数中做如此调用: System.Windows.Application.Current.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal, n 阅读全文
posted @ 2011-04-15 16:30 山河 阅读(1493) 评论(0) 推荐(0)
摘要: 1.概论 运行时库是程序在运行时所需要的库文件,通常运行时库是以LIB或DLL形式提供的。C运行时库诞生于20世纪70年代,当时的程序世界还很单纯,应用程序都是单线程的,多任务或多线程机制在此时还属于新观念。所以这个时期的C运行时库都是单线程的。 随着操作系统多线程技术的发展,最初的C运行时库无法满足程序的需求,出现了严重的问题。C运行时库使用了多个全局变量(例如errno)和静态变量,这可能在多线程程序中引起冲突。假设两个线程都同时设置errno,其结果是后设置的errno会将先前的覆盖,用户得不到正确的错误信息。 因此,Visual C++提供了两种版本的C运行时库。一个版本供单线程应用程 阅读全文
posted @ 2011-04-15 16:29 山河 阅读(282) 评论(0) 推荐(0)
摘要: 一、 软件执行流程1、 软件编译流程Ø 预编译完成宏展开工作。Ø 为每一个.cxx源文件编译一个目标文件(.obj,.o),目标文件中至少包含二进制的代码段和数据段。在cxx源文件中可能会引用在其他cxx/hxx中定义的符号,也可能是自己定义的一些符号,这些作用域超过一个cxx文件的符号称为“public符号”(例如非静态函数)。因此每一个目标文件中也包含一个符号表,用于记录自己引用的符号及自己提供的public符号。Ø 编译器合成这些目标文件成一个库文件(.lib),同时解析可以找到的符号引用。此时这个库文件包含了二进制的代码段和数据段,同样也会包含一个符号表, 阅读全文
posted @ 2011-04-15 16:28 山河 阅读(254) 评论(0) 推荐(0)
摘要: 基于windows操作系统,可以采用如下函数创建线程,以前的代码是不准备去翻了,立此备忘而已...1、windows API CreateThread; HANDLE CreateThread(PSECURITY_ATTRIBUTES psa, DWORD cbStack,PTHREAD_START_ROUTINE pfnStartAddr, PVOID pvParam,DWORD fdwCreate, PDWORD pdwThreadID);psa参数:是指向PSECURITY_ATTRIBUTES结构的指针。如果希望所有的子进程能够继承该线程对象的句柄,必须设定一个PSECURITY_AT 阅读全文
posted @ 2011-04-15 16:27 山河 阅读(225) 评论(0) 推荐(0)
摘要: 八、 Windows驱动程序模型Windows环境下驱动程序共有三类,一类是VxD( Virtual Device Driver,虚拟设备驱动程序),起源于Windows 3.1 时代,用于Windows 95/98/Me操作系统中;一类是KMD( Kernel Mode Driver,内核模式驱动程序),用于Windows NT下;还有一类就是WDM(Win32 Driver Mode,Win32驱动程序模型),是微软从Windows 98开始,推出的一个新的驱动类型,它是一个跨平台的驱动程序模型,不仅如此WDM驱动程序还可以在不修改源代码的情况下经过重新编译后在非Intel平台上运行,毫不 阅读全文
posted @ 2011-04-15 16:26 山河 阅读(1660) 评论(0) 推荐(0)
摘要: Windows下usb接口芯片的驱动技术一、 USB概述USB的英文全称为Universal Serial Bus,中文含义是通用串行总线,是由Conpaq、DEC、IBM、Inter、Microsoft、NEC和Northen Telecom等公司为简化PC与外设之间的互连而共同研究开发的一种免费的标准化连接器,它支持各种PC与外设之间的连接,还可实现数字多媒体集成。现在生产的PC几乎都配备了USB接口,Microsoft 的Windows98、NT以及MacOS、Linux、FreeBSD等流行操作系统都增加了对 USB的支持。它是一种快速的,双向的,同步传输的廉价的并可以进行热拔插的串行 阅读全文
posted @ 2011-04-15 16:25 山河 阅读(1620) 评论(0) 推荐(0)
摘要: IP 数据包格式(1)版本 占4位,指IP协议的版本。通信双方使用的IP协议版本必须一致。目前广泛使用的IP协议版本号为4(即IPv4)。关于IPv6,目前还处于草案阶段。 (2)首部长度 占4位,可表示的最大十进制数值是15。请注意,这个字段所表示数的单位是32位字长(1个32位字长是4字节),因此,当IP的首部长度为1111时(即十进制的15),首部长度就达到60字节。当IP分组的首部长度不是4字节的整数倍时,必须利用最后的填充字段加以填充。因此数据部分永远在4字节的整数倍开始,这样在实现IP协议时较为方便。首部长度限制为60字节的缺点是有时可能不够用。但这样做是希望用户尽量减少开销。最常 阅读全文
posted @ 2011-04-15 16:24 山河 阅读(447) 评论(0) 推荐(0)
摘要: 1.Soket发展史以及它和tcp/ip的关系七十年代中,美国国防部高研署(DARPA)将TCP/IP的软件提供给加利福尼亚大学Berkeley分校后,TCP/IP很快被集成到 Unix中,同时出现了许多成熟的TCP/IP应用程序接口(API)。这个API称为Socket接口。今天,SOCKET接口是TCP/IP网络最为 通用的API,也是在INTERNET上进行应用开发最为通用的API。 九十年代初,由Microsoft联合了其他几家公司共同制定了一套 WINDOWS下的网络编程接口,即Windows Sockets规范。它是Berkeley Sockets的重要扩充,主要是增加了一些异步函 阅读全文
posted @ 2011-04-15 16:23 山河 阅读(465) 评论(0) 推荐(1)
摘要: 4.Internet最常用的几个服务 远程登录(Telnet)远程登陆Telnet:远程, 登录,仿真终端,共享工具。 远程登陆Telnet是一个简单的远程终端协议。 用户用Telnet就可以在所在地通过TCP连接(即登录)到远地的另一台主机上(使用主机名或IP地址)。有两种登录命令,telnet,relogin(为Berkeley UNIX而开发的) 如:telnet bbs.zsu.edu.cn, (中山大学BBS) telnet smth.org (清华BBS) Telnet也使用客户/服务器模式 Telnet功能Telnet在功能上,是模拟成远端一部电脑系统的终端机,称为网络虚拟终端N 阅读全文
posted @ 2011-04-15 16:21 山河 阅读(222) 评论(0) 推荐(0)
摘要: 1.计算机网络体系结构相互通信的两个计算机系统必须高度协调工作才行,而这种“协调”是相当复杂的。• “协调”衍生出网络体系结构• 定义:层次结构和各层协议的集合计算机网络是采用层次性的结构模型,将网络分为若干层次,每个层次负责不同的功能。每一个层次中通信双方都要共同遵守相应的约定,我们将这个约定叫做协议。各功能层之间,上一层向下一层提出服务的要求,下一层则完成上一层提出的要求。 物 理层为它的上一层提供一个物理连接,以及它们的机械、电气、功能和过程特性 – 机械特性:主要定义物理连接的接插装置的形状和尺寸、引脚数量和排列、固定和锁定装置等等。 – 电气特性 :规定传输二进制位时,线路上信号的电 阅读全文
posted @ 2011-04-15 16:20 山河 阅读(399) 评论(0) 推荐(0)
摘要: 使用过MSN的人应该知道,目前有针对MSN的外壳程序MSNShell。使用Skype4Com API你也可以轻松的开发一个SKYPEShell程序。Skype也是世界上最开放,最具创新意识的IM工具,他提供了Skype API, Skype4COM, Skype4Java几种形式的开发接口给Skype爱好者编写Skype的交互程序或者Skype的插件。Skype中文官网:http://skype.tom.com/Skype全球官网:http://www.skype.com/Skype全球开发者社区:http://developer.skype.com/SkypeShell下载链接:http:/ 阅读全文
posted @ 2011-04-15 16:18 山河 阅读(714) 评论(0) 推荐(0)
摘要: 早在两年前我就已经能很熟练的运用完成端口这种技术了,只是一直没有机会将它用在什么项目中,这段时间见到这种技术被过分炒作,过分的神秘化,就想写一篇解释它如何工作的文章.想告诉大家它没有传说中的那么高深难懂!有什么错误的地方还请高人指正.转载请注明出处及作者,谢谢!以一个文件传输服务端为例,在我的机器上它只起两个线程就可以为很多个个客户端同时提供文件下载服务,程序的性能会随机器内CPU个数的增加而线性增长,我尽可能做到使它清晰易懂,虽然程序很小却用到了NT 5的一些新特性,重叠IO,完成端口以及线程池,基于这种模型的服务端程序应该是NT系统上性能最好的了.首先.做为完成端口的基础,我们应该理解重叠 阅读全文
posted @ 2011-04-15 16:17 山河 阅读(306) 评论(0) 推荐(0)
摘要: 1、Qt提供了多类操作系统平台下的SDK,SDK中的Qt库提供相同的接口,同时提供了一个跨平台的IDE Qt Creator.如此,只要使用Qt Creator编写一套代码于不同的装有相应SDK的操作系统上编译即可实现软件的跨平台。2、他具有一次编码到处编译的特点和java的一次编译到处运行不同。3、使用signal/slots 代替callback协调各个元件之间的工作。4、qt的信号槽机制相当于windows消息机制的消息与消息响应函数,所以说qt使用连接完成了信号与槽的关联进而支持完成了回调。5、 阅读全文
posted @ 2011-04-15 16:16 山河 阅读(175) 评论(0) 推荐(0)
摘要: 1. 引言Windows 在操作系统平台占有绝对统治地位,基于Windows 的编程和开发越来越广泛。Dos 是过程驱动的,而Windows 是事件驱动的[6],这种差别的存在使得很多Dos 程序员不能习惯Windows 的程序开发。而很多Windows 程序开发人员也只是对消息运行机制一知半解,想要掌握Windows 编程的核心,必须深刻理解消息机制。事件驱动围绕着消息的产生与处理展开,事件驱动是靠消息循环机制来实现的。也可以理解为消息是一种报告有关事件发生的通知,消息是Windows 操作系统的灵魂,掌握了消息运行机制就掌握了Windows 编程的神兵利器。本文将首先阐述Windows 的 阅读全文
posted @ 2011-04-15 16:15 山河 阅读(283) 评论(0) 推荐(0)
摘要: 1、Windows事件驱动机制 我们当中不少使用VC、Delphi等作为开发语言的程序员是一步步从DOS下的Basic、C++中走过来的,而且大多在刚开始学习编程时也是先从DOS下的编程环境入手的,因此在习惯了DOS下的过程驱动形式的顺序程序设计方法后,往往在向Windows下的开发环境转型的过程中会对Windows所采取的事件驱动方式感到无法适应。因为DOS和Windows这两种操作系统的运行机制是截然不同的,DOS下的任何程序都是使用顺序的、过程驱动的程序设计方法。这种程序都有一个明显的开始、明显的过程以及一个明显的结束,因此通过程序就能直接控制程序事件或过程的全部顺序。即使是在处理异常时 阅读全文
posted @ 2011-04-15 16:11 山河 阅读(731) 评论(0) 推荐(0)
摘要: 1. 所有变量定义位于函数开始处。2. 尽量避免全局变量,全局变量需于实现文件中定义,头文件中extern声明。3.浮点零值比较采用区间值。4.保证正确的前提下尽量使用移位运算。5.If语句、switch语句优先处理出现概率大的情况。6. 指针与NULL比较反写如:NULL==p。7. 循环嵌套时最长的循环放内层短的放外层。8.尽量不在循环体内修改循环变量。9.凡是无返回值、无参数、任意类型指针参数的函数均使用void或void指针。10.适当使用const,使用目的限于节省空间、提高效率、不允许修改或可能产生的函数参数修改。11.对于可变、多变的寄存器变量、多线程共享变量,在经过代码优化处理 阅读全文
posted @ 2011-04-15 16:10 山河 阅读(421) 评论(0) 推荐(0)
摘要: 回调函数是一个很有用,也很重要的概念。当发生某种事件时,系统或其他函数将会自动调用你定义的一段函数(简单如一按钮的事件相应函数)。回调函数在windows编程使用的场合很多,比如Hook回调函数:MouseProc,GetMsgProc以及EnumWindows,DrawState的回调函数等等,还有很多系统级的回调过程。之所以产生使用回调函数这个想法,用VC写的一个DLL程序进行一些时间比较长的异步工作,工作完成之后,需要通知使用DLL的应用程序:某些事件已经完成,请处理事件的后续部分。开始想过使用同步对象,文件影射,消息等实现DLL函数到应用程序的通知,后来突然想到可不可以在应用程序端先写 阅读全文
posted @ 2011-04-15 16:10 山河 阅读(354) 评论(0) 推荐(1)
摘要: c++语言本身是不能删除文件或文件夹的,他们是windows操作系统里的东西,所以得借助其api函数。其一:使用shell 接口:void FileDelete(CString directory){SHFILEOPSTRUCT shFileOp;char strCurrentPath[MAX_PATH];memset(&shFileOp,0,sizeof(shFileOp)); GetCurrentDirectory(MAX_PATH,strCurrentPath);strcat_s(strCurrentPath,sizeof(strCurrentPath),directory);s 阅读全文
posted @ 2011-04-15 16:09 山河 阅读(3490) 评论(0) 推荐(0)
摘要: 同步 所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。按照这个定义,其实绝大多数函数都是同步调用(例如sin, isdigit等)。但是一般而言,我们在说同步、异步的时候,特指那些需要其他部件协作或者需要一定时间完成的任务。最常见的例子就是 SendMessage。该函数发送一个消息给某个窗口,在对方处理完消息之前,这个函数不返回。当对方处理完毕以后,该函数才把消息处理函数所返回的 LRESULT值返回给调用者。 异步 异步的概念和同步相对。当一个异步过程调用发出后,调用者不能立刻得到结果。实际处理这个调用的部件在完成后,通过状态、通知和回调来通知调用者。以 CAsyc 阅读全文
posted @ 2011-04-15 16:08 山河 阅读(158) 评论(0) 推荐(0)
摘要: winsocket的同步阻塞结合多线程方便简单设计节点服务器,但是真要弄出个高效并发的服务器还得考虑下异步阻塞或非阻塞机制。winsocket引入了几个套接字I/O模型,分别如下:1.select模型:避免了异步机制实时返回WSAEWOULDBLOCK 的错误(无功而返),该方法通过定义套接字、套接字集合变量,循环清除套接字集合变量、将套接字添加至集合,使用 select函数选择符合参数规定条件的套接字,保留符合条件的套接字删除不符合条件的,依据其返回值判断所定义的套接字是否还在套接字集合里边,如果在则说明选到了符合条件的套接字,可对该套接字进行操作。2.WSAAsyncSelect异步I/O 阅读全文
posted @ 2011-04-15 16:07 山河 阅读(428) 评论(0) 推荐(0)
摘要: OSI和TCP/IP1. 七层网络结构(功能及特点)OSI1) 物理层:为数据链路层提供物理连接,在其上串行传送比特流,即所传送数据的单位是比特。此外,该层中还具有确定连接设备的电气特性和物理特性等功能。2) 数据链路层:负责在网络节点间的线路上通过检测、流量控制和重发等手段,无差错地传送以帧为单位的数据。为做到这一点,在每一帧中必须同时带有同步、地址、差错控制及流量控制等控制信息。3) 网络层:为了将数据分组从源(源端系统)送到目的地(目标端系统),网络层的任务就是选择合适的路由和交换节点,使源的传输层传下来的分组信息能够正确无误地按照地址找到目的地,并交付给相应的传输层,即完成网络的寻址功 阅读全文
posted @ 2011-04-15 16:06 山河 阅读(483) 评论(0) 推荐(1)
摘要: 以前用过向窗体发送WM_CLOSE消息,今见内存快照-->进程遍历-->获取进程id-->进程句柄-->关闭进程。如下:bool FileClient::CloseProcess(char* sProcessName){if(sProcessName==NULL){ return false;} PROCESSENTRY32 pe32; pe32.dwSize = sizeof(pe32); //进程快照 HANDLE hProcessSnap = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); if (hProces 阅读全文
posted @ 2011-04-15 16:03 山河 阅读(215) 评论(0) 推荐(0)
摘要: (1)Win API bool CheckFolderExist(const string &strPath) { WIN32_FIND_DATA wfd; bool rValue = false; HANDLE hFind = FindFirstFile(strPath.c_str(), &wfd); if ((hFind != INVALID_HANDLE_VALUE) && (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) { rValue = true; } FindClose(hFind); return rValue; } (2)Win SHell PathFileExists("yourfile") 使用时加上:#include "Shlwapi.h" #pragma comment(lib,"Shlwapi.lib") (3)Win API bool FileExists(L 阅读全文
posted @ 2011-04-15 16:02 山河 阅读(385) 评论(0) 推荐(0)
摘要: Windows NT和Windows 2000的套接字架构对于开发大响应规模的Winsock应用程序而言,对Windows NT和Windows 2000的套接字架构有基本的了解是很有帮助的。与其他操作系统不同的是,WinNT和Win2000的传输协议层并不直接给应用程序提供socket风格的接口,不接受应用程序的直接访问。而是实现了更多的通用API,称为传输驱动接口(Transport Driver Interface,TDI).这些API把WinNT的子系统从各种各样的网络编程接口中分离出来。然后,通过Winsock内核模式驱动提供了sockets方法(在AFD.SYS里实现)。这个驱动 阅读全文
posted @ 2011-04-15 15:59 山河 阅读(550) 评论(0) 推荐(0)
摘要: Windows NT和Windows 2000的套接字架构对于开发大响应规模的Winsock应用程序而言,对Windows NT和Windows 2000的套接字架构有基本的了解是很有帮助的。与其他操作系统不同的是,WinNT和Win2000的传输协议层并不直接给应用程序提供socket风格的接口,不接受应用程序的直接访问。而是实现了更多的通用API,称为传输驱动接口(Transport Driver Interface,TDI).这些API把WinNT的子系统从各种各样的网络编程接口中分离出来。然后,通过Winsock内核模式驱动提供了sockets方法(在AFD.SYS里实现)。这个驱动负 阅读全文
posted @ 2011-04-15 15:53 山河 阅读(1807) 评论(0) 推荐(1)