1. I/O模型共有以下几种: 阻塞(blocking)模型 选择(select)模型 WSAAsyncSelect模型 WSAEventSelect模型 重叠(overlapped)模型 完成端口(completion port)模型 2. 阻塞模式 套接字创建时,默认工作在阻塞模式下.阻塞套接字的好处是使用简单,但是当需要处理多个套接字连接时,就必须创建多个线程,即典型的一个连接使用一个线程的问题,这给编程带来了许多不便.所以实际开发中使用最多的还是非阻塞模式. 3. 非阻塞模式 调用 io…
1. select模型 select模型主要借助于apiselect来实现,所以先介绍一下select函数 int select( int nfds, // 忽略,仅是为了与 Berkeley 套接字兼容 fd_set* readfds, // 指向一个套接字集合,用来检查其可读性 fd_set* writefds, // 指向一个套接字集合,用来检查其可写性 fd_set* exceptfds, // 指向一个套接字集合,用来检查错误 const struct timeval* timeout…
1. WSAAsyncSelect 模型 WSAAsyncSelect 模型比较简单,是为了适应Windows的消息驱动环境而设置的,WSAAsyncSelect 函数自动把套接字设为非阻塞模式.MFC( Microsoft Foundation Class, Microsoft 基础类库)中的CSocket 类也使用了它 2. 应用举例 // WSAAyncSelectDemo.cpp : Defines the entry point for the application. // #inc…
今天我又学习了一种新的套接字I/O模型------WSAEventSelect,他与WSAAsyncSelect一样也是一种异步事件通知模型,不同的是WSAAsyncSelect是与窗口句柄关联在一起的,必须要要窗口才行,而WSAEventSelect是与事件对象关联的.这个模型的基本思路是为感兴趣的一组网络事件创建一个事件对象,再调用WSAEventSelect函数将网络事件和事件对象关联起来.当网络事件发生时,winsock使响应的事件对象受信,在事件对象上等待的函数就会立即返回.之后调用W…
共有6种类型套接字I/O模型.blocking(阻塞),select(选择),WSAAsyncSelect(异步选择),WSAEventSelect(事件选择),overlapped(重叠),completionport(完成端口). .select 之所以称select模型,是因为工作原理是利用select函数实现对I/O的管理. select可用于判断套接字上是否存在数据,或者能否向一个套接字写入数据,之所以要设计这个函数,其目的是防止应用程序在套接字处于阻塞模式时,在I/O绑定调用(如se…
web学习第一章   我是大概9月10日开始走上IT之路的,一开始学习了小段时间的自动化办公软件, 昨天我开始学习客户端网页编程,我了解什么是WEB,一些比较老古董的计算模式和发展历史,印象最让我深刻的是WEB应用程序的工作原理,因为老师为了解释这个画来很多遍图,我当时想的是:为什么还有人没懂?我都听困了. 直到老师说要抽人起来画图,我一下就回过神来了,于是乎老师抽人开始了,我看见同学一个个的被抽上去画,我发现我有些东西怎么没看见过,在他们画的同时我就在下面学,错一个,我就记一个. 今天老师还是…
1.1最简单的查询语句 例 1-1 SQL> select * from emp; 例 1-1 结果 这里的 * 号表示全部的列.它与在select 之后列出全部的列名是一样的.查询语句以分号( ; )结束. emp(employee)是一个员工表. 1.2 在查询语句中怎样选择特定的列 在平时的使用过程中我们须要的往往仅仅是一张表中的某一条或者某几条数据而已.但上面查询的结果可能看起来比較乱.假设我们指向知道若干个特定列的信息,使用select 语句非常easy就能够做到. 就好比我们去菜市场…
重叠模型的基本设计原理是让应用程序使用重叠的数据结构,一次投递一个或多个WinsockI/O请求.针对那些提交的请求,在它们完成之后,应用程序可为它们提供服务.模型的总体设计以Windows重叠I/O机制为基础.这个机制可通过ReadFile和WriteFile两个函数,在设备上执行I/O操作. 要想在一个套接字上使用重叠I/O模型,首先必须创建一个设置了重叠标志的套接字. 主要有两种方法来管理重叠I/O的请求..事件对象通知 .完成实例. 事件通知: 重叠I/O的事件通知方法要求将Window…
利用这个异步I/O模型,应用程序可在一个套接字上接收以Windows消息为基础的网络事件通知.WSAAsyncSelect和WSAEventSelect提供读写数据能力的异步通知,但它们不提供异步数据传输,重叠及完成端口提供异步数据传输. 消息通知 要想使用WSAAsyncSelect模型,在应用程序中,首先必须用CreateWindow函数创建一个窗口,再为该窗口提供一个窗口过程支持函数,亦可使用一个对话框,为其提供一个对话框过程来代替窗口过程,这是因为对话框本质也是窗口. int WSAAs…
“完成端口”模型是迄今为止最为复杂的一种I/O模型.然而,假若一个应用程序同时需要管理为数众多的套接字,那么采用这种模型,往往可以达到最佳的系统性能!但不幸的是,该模型只适用于Windows NT和Windows 2000操作系统.因其设计的复杂性,只有在你的应用程序需要同时管理数百乃至上千个套接字的时候,而且希望随着系统内安装的CPU数量的增多,应用程序的性能也可以线性提升,才应考虑采用“完成端口”模型.要记住的一个基本准则是,假如要为Windows NT或Windows 2000开发高性能的…