五种I/O模型的性能分析重叠I/O模型的另外几个优点在于,微软针对重叠I/O模型提供了一些特有的扩展函数。当使用重叠I/O模型时,可以选择使用不同的完成通知方式。采用事件对象通知的重叠I/O模型是不可伸缩的,因为针对发出WSAWaitForMultipleEvents调用的每个线程,该I/O模型一次最多都只能支持6 4个套接字。假如想让这个模型同时管理不止6……继续阅读 » 弦苦 3年前 (2022-03-19) 1248浏览 0评论1045个赞
select模型本质上是一种分类处理思想,预先声明几个FD_SET(fd_set结构)集合(使用FD_ZERO初始化),例如ReadSet、WriteSet,fd_set数据类型本质上代表着一系列按关注事件分类的套接字集合。本文讨论三种选择模型(都带select,姑且这样称呼):select(选择)、WSAAsyncSelect(异步选择)、WSAEvent……继续阅读 » 弦苦 3年前 (2022-03-19) 2419浏览 0评论1929个赞
套接字,简单的说就是通信双方的一种约定,用套接字中的相关函数来完成通信过程。应用层通过传输层进行数据通信时,TCP和UDP会遇到同时为多个应用程序进程提供并发服务的问题。本文初步梳理了socket相关概念和模式。……继续阅读 » 弦苦 3年前 (2022-03-19) 1188浏览 0评论2397个赞
完成端口对象取代了WSAAsyncSelect中的消息驱动和WSAEventSelect中的事件对象,当然完成端口模型的内部机制要比WSAAsyncSelect和WSAEventSelect模型复杂得多。……继续阅读 » 弦苦 3年前 (2022-03-19) 1703浏览 0评论2595个赞
Socket网络通信库、C/S Framework、流媒体及P2P方面的一些开源项目参考……继续阅读 » 弦苦 3年前 (2022-03-19) 1629浏览 0评论2110个赞
6.2.1 接受连接的方法Winsock扩展函数AcceptEx是唯一能够使用重叠I/O接受客户连接的函数。下面主要深入探讨使用该函数接收连接的问题。前面已经讨论过,当客户连接进来时,服务器需要创建一个套接字来负责维护与一个客户端的会话。使用AcceptEx函数之前必须创建一些套接字,并且这些套接字必须是未绑定、未连接的,即使它们可能在调用TransmitF……继续阅读 » 弦苦 3年前 (2022-03-19) 1178浏览 0评论307个赞
一.重叠I/O模型的概念当调用ReadFile()和WriteFile()时,如果最后一个参数lpOverlapped设置为NULL,那么线程就阻塞在这里,直到读写完指定的数据后,它们才返回。这样在读写大文件的时候,很多时间都浪费在等待ReadFile()和WriteFile()的返回上面。如果ReadFile()和WriteFile()是往管道里读写数据,……继续阅读 » 弦苦 3年前 (2022-03-19) 2764浏览 0评论878个赞
引言要想编写一个高性能的服务器应用程序,必须实现一个高效的线程模型。让太少或者太多的服务器线程来处理客户的请求,都可能导致性能问题。例如,如果一个服务器创建单个线程来处理所有的请求,那么客户端可能长期等待而得不到响应,因为服务器同一时刻只能忙于处理一个请求。当然单个线程也能并发处理多个请求,当I/O操作被启动时,它可以从一个请求切换到另一个请求,但是这种结构……继续阅读 » 弦苦 3年前 (2022-03-19) 1144浏览 0评论2729个赞
#define FALSE 0 afx.h#define TRUE 1 afx.h#define NULL 0 afx.htypedef void VOID winnt.h // 短整型typedef unsigned shorttyped……继续阅读 » 弦苦 3年前 (2022-03-19) 1353浏览 0评论1759个赞
INI文件简介在我们写程序时,总有一些配置信息需要保存下来,以便在下一次启动程序完成初始化,这实际上是一种类持久化。将一些信息写入INI文件(initialization file)中,可完成简单的持久化支持。Windows提供了API接口用于操作INI文件,其支持的INI文件格式一般如下:===============================[Se……继续阅读 » 弦苦 3年前 (2022-03-19) 1738浏览 0评论2407个赞
MFC向导生成的对话框为模态对话框,当我们在资源编辑器中向对话框拖拽一个按钮IDC_BTN时,其布局信息将同步反映在DlgDemo.rc资源脚本文件中。// DlgDemo.rcIDD_MY_DIALOG DIALOGEX 0, 0, 320, 201STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTI……继续阅读 » 弦苦 3年前 (2022-03-19) 2645浏览 0评论1367个赞
#include BOOL InitWindowsClass(HINSTANCE hInstance); // 注册窗口类BOOL InitWindows(HINSTANCE hInstance, int nCmdShow); // 创建窗口LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LP……继续阅读 » 弦苦 3年前 (2022-03-19) 2095浏览 0评论2273个赞
I/O管理器 I/O 管理器定义了有序的结构,或者说是模型,在这个模型里将I/O请求发送给设备驱动程序。I/O系统是包驱动的,大部分I/O请求用I/O请求包(IRP)代表,从一个I/O系统组件传送到另一个组件。(注意:快速I/O不是IRP。)这种设计允许一个应用程序线程可以同时管理多个I/O请求。一个IRP是一个数据结构,包含了完整地描述一个I/O请求的信息……继续阅读 » 弦苦 3年前 (2022-03-19) 1663浏览 0评论282个赞
一.几个What什么是API?API是英文 Application Programming Interface 的简称,意为“应用程序接口”,泛指系统为应用程序提供的一系列接口函数。Windows API是Windows操作系统与应用程序之间的标准接口,它提供了上千个API标准函数、宏和数据结构。在使用VB,VC,Dephi编写应用程序时都可以调用Windo……继续阅读 » 弦苦 3年前 (2022-03-19) 1738浏览 0评论667个赞
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.M……继续阅读 » 弦苦 3年前 (2022-03-19) 1684浏览 0评论1003个赞
一.关于GDI的基本概念什么是GDI?Windows绘图的实质就是利用Windows提供的图形设备接口GDI(Graphics Device Interface)将图形绘制在显示器上。在Windows操作系统中,动态链接库C:/WINDOWS/system32/gdi32.dll(GDI Client DLL)中定义了GDI函数,实现与设备无关的包括屏幕上输……继续阅读 » 弦苦 3年前 (2022-03-19) 2621浏览 0评论1447个赞
下面我们来看看Windows平台下应用程序是怎么调用Windows提供的底层API服务运行的。 我们编写Win32SDK程序时,需要弹出对话框以作出友好的选择,MessageBox这个API函数就可以实现该功能。在开头要添加,因为其包含了众多的API函数声明头文件。为了探究这个小小的MessageBox是怎么弹出来的,我们右击MessageBox,选择“Go……继续阅读 » 弦苦 3年前 (2022-03-19) 1298浏览 0评论2381个赞
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……继续阅读 » 弦苦 3年前 (2022-03-19) 2200浏览 0评论567个赞
除了传统的SDK方式编写Windows应用程序外,还可以使用微软的基础类库MFC。它采用C++程序设计语言对SDK函数进行包装,使Windows下的C语言程序设计,成为面向对象的MFC。以下为MFC窗口应用程序框架示例及解析。 1.建立Win32项目FirstMFC打开Visual Studio 2005à文件à新建à项目àVisual C++àwin32……继续阅读 » 弦苦 3年前 (2022-03-19) 1523浏览 0评论2854个赞
(1)建立单文档MFC项目Draw:NewàProjectsàMFC AppWizard(EXE)àSingle Document。(2)找到CMainFrame::PreCreateWindow函数,在其中设置默认窗口大小为400 pixel*300 pixel。BOOL CMainFrame::PreCreateWindow(CREATESTRUCT……继续阅读 » 弦苦 3年前 (2022-03-19) 2114浏览 0评论927个赞
some classic books about programming……继续阅读 » 弦苦 3年前 (2022-03-19) 2880浏览 0评论103个赞
除非显式地声明,否则,你可以假设以下讨论的内容既适合用户模式的线程,也适用于内核模式的线程。在系统级别上,Windows线程是由一个线程块执行体(ETHREAD)来表示的,如图6.7所示。ETHREAD块和它所指向的结构都位于系统地址空间中,唯一的例外是线程环境快(TEB),它位于进程地址空间中。而且,Windows子系统进程(Csrss)为Windows进……继续阅读 » 弦苦 3年前 (2022-03-19) 3015浏览 0评论740个赞
概述Windows 实现了一个由优先级驱动,抢占式的调度系统,也就是最高优先级的可运行的(就绪状态下的)线程总是先运行。 有一种现象称之为“处理器亲合(processor affinity)”,即线程可能受处理器限制,只运行在那些允许它运行的处理器上。缺省的设置是线程可运行在任何可用的处理器上,用户可以通过使用一个Win32的调度函数修改处理器的“亲合性”。……继续阅读 » 弦苦 3年前 (2022-03-19) 3113浏览 0评论2713个赞
Win32多线程编程之基础概念篇……继续阅读 » 弦苦 3年前 (2022-03-19) 2117浏览 0评论2485个赞
Win32多线程编程之线程控制……继续阅读 » 弦苦 3年前 (2022-03-19) 1596浏览 0评论605个赞
Windows下批处理返回今天是星期几保存下面的代码为:test.bat,执行后返回:It’s 周六 today@ECHO OFFFOR /F "tokens=*" %%A IN ('DATE/T') DO FOR %%B IN (%%A) DO SET Today=%%BECHO It'……继续阅读 » 水墨上仙 5年前 (2019-08-02) 1833浏览 297个赞
Command failed: D:\PFiles\DockerToolbox\docker-machine.exe -D create -d virtualbox –virtualbox-memory 2048 default,Docker Machine Version: 0.13.0, build 9ba6da9,Found binary ……继续阅读 » 开心洋葱 7年前 (2017-11-29) 1454浏览 13评论458个赞
@echo offecho "网卡自动重启服务正在进行中......." :beginping g.cn>ping.txt rem echo %errorlevel%if %ERRORLEVEL% == 1 goto ping2goto loop :ping2ping baidu.com……继续阅读 » 开心洋葱 8年前 (2016-12-06) 3125浏览 0评论1697个赞
Microsoft Windows [版本 10.0.14393]体验先上截图,巨大的变化无外乎开始菜单,这是前天的事情了,系统提示升级,没有截屏,因为还有工作要忙,选择了关闭,可不到半小时,系统自动重启进行升级,这已升级可就花费了一上午的时间,最后出现的结果还算是满意,界面,速度,有略微提升(没有经过严格测试,只是个人感觉,仅供参考),好了下面看下最……继续阅读 » 开心洋葱 8年前 (2016-09-06) 1446浏览 0评论2530个赞
先决条件:a. 启动Windows Management Instrumentation服务,开放TCP135端口。b. 本地安全策略的“网络访问: 本地帐户的共享和安全模式”应设为“经典-本地用户以自己的身份验证”。WMIC 的安全性只有本地 Administrators 组的用户才可以启动 WMIC。在任何从 WMIC 到 WMI 的调用中都会强……继续阅读 » 开心洋葱 9年前 (2016-05-13) 1710浏览 0评论1508个赞
windows7 32位(64位)上VMware8虚拟机运行MacOsX系统(高清教程) 首先要测试你的机器能不能跑起来MAC苹果系统,测试软件SecurAble SecurAble(检测你的CPU是否支持硬件级虚拟模式) 注意:如 图,当Hardware Virtualization为Yes或者Locked ON的时……继续阅读 » 开心洋葱 13年前 (2011-10-24) 2709浏览 0评论113个赞