Network Programming for Windows读书笔记9
来源:互联网 发布:w7本机ip端口查询器 编辑:程序博客网 时间:2024/09/21 09:18
WSAAsyncSelect
Winsock提供了一个有用的异步I/O模型。利用这个模型,应用程序可在一个套接字上,接受以Windows消息为基础的网络事件通知.具体的做法是在建好一个套接字后,调用WSAAsyncSelect函数.该模型最早出现于Winsock的1.1版本中,用于帮助应用程序开发者面向一些早期的16位Windows平台(如windows for Workgroups),适应其"落后"的多任务消息环境.应用程序仍可从这种模型中得到好处,特别是它们用一个标准的Windows例程(常称为"winproc"),对窗口消息进行管理的时候。该模型亦得到了Microsoft Foundation Class(微软基本类,MFC) 对象CSocket的采纳.
消息通知
要想使用WSAAsyncSelect模型,在应用程序中,首先必须用CreateWindow函数创建一个窗口,再为该窗口提供一个窗口例程支持函数(Winproc).亦可使用一个对话框,为其提供一个对话例程,而非窗口例程,因为对话框本质也是"窗口".考虑到我们的目的,我们打算用一个简单的窗口来演示这种模型,采用的是一个支持窗口例程.设置好窗口的框架后,便可开始创建套接字,并调用WSAAsyncSelect函数,打开窗口消息通知.该函数的定义如下:
int WSAAsyncSelect(
SOCKET s,
HWND hWnd,
unsigned int wMsg,
long lEvent
);
其中,s参数指定的是我们感兴趣的那个套接字。hWnd参数指定的是一个窗口句宾,它对应于网络事件之后,想要收到通知消息的那个窗口或对话框.wMsg参数指定在发生网络事件时,打算接受的消息.该消息会投递到由hWnd窗口句柄指定的那个窗口.通常,应用程序需要将这个消息设为比Windows的WM_USER大的一个值,避免网络窗口消息与预定义的标准窗口消息发生混淆与冲突.最后一个参数是lEvent,它指定的是一个位掩码,对应于一系列网络事件的组合,应用程序感兴趣的便是这一系列事件.大多数应用程序通常感兴趣的网络事件包括:FD_READ、FD_WRITE、FD_ ACCEPT、FD_CONNECT和FD_CLOSE.当然,到底使用FD_ACCEPT,还是使用FD_CONNECT类型,要取决于应用程序
- Network Programming for Windows读书笔记9
- Network Programming for Windows读书笔记1
- Network Programming for Windows读书笔记2
- Network Programming for Windows读书笔记3
- Network Programming for Windows读书笔记4
- Network Programming for Windows读书笔记5
- Network Programming for Windows读书笔记6
- Network Programming for Windows读书笔记7
- Network Programming for Windows读书笔记8
- Network Programming for Microsoft Windows
- net programming for microsoft windows 读书笔记
- Network Programming for Microsoft Windows 2nd Edition
- Network Programming For Microsoft Windows Notes:Introduction to Winsock
- Network Programming For Microsoft Windows Notes:Winsock I/O
- Network Programming for Microsoft Windows 2nd(Windows 网络编程第二版) 学习心得
- multicast(一) (转自network programming for microsoft windows, second edition.)
- Programming Video for Windows
- Programming Video for Windows
- 候捷網路資源
- 在Eclipse中使用RDT插件进行Ruby开发(3)
- IE全屏最简单的代码
- 有问题的DLL文件
- SQL备份与还原经典文档
- Network Programming for Windows读书笔记9
- 数据库设计范式
- 动态归化 找零钱
- 开通记要
- 《Selling - Building Partnerships》- 组织性购买行为及其过程
- 验证视图MAC失败 Validation of ViewState MAC Failed
- O/R Mapping前身:自定义实体类
- 人一生会遇到的10种人
- 交换机中MAC地址老化时间测试