异步套接字编程之WSAAsyncSelect模型

本文介绍了使用WSAAsyncSelect实现异步I/O模型,通过创建窗口并设置窗口消息,当网络事件发生时,应用程序会接收到通知。详细解析了WSAAsyncSelect函数参数及使用注意事项,包括FD_READ、FD_WRITE等网络事件的处理。
摘要由CSDN通过智能技术生成
WSAAsyncSelect模型:


 

 

█ 异步选择(WSAAsyncSelect)模型是一个有用的异步I/O 模型。利用这个模型,应用程序可在一个套接字上,

接收以 Windows 消息为基础的网络事件通知。具体的做法是在建好一个套接字后,调用WSAAsyncSelect函数。

该模型的核心即是WSAAsyncSelect函数。

 

要想使用WSAAsyncSelect 模型,在应用程序中,首先必须用CreateWindow函数创建一个窗口,再为该窗口提供一个窗口例程函数(WinProc)。(这也是WSAAsyncSelect的一个缺点)

 

█ WSAAsyncSelect 的函数原型如下:

int WSAAsyncSelect(

  __in         SOCKET s,

  __in         HWND hWnd,

  __in         unsigned int wMsg,

  __in         long lEvent

);

 

● s 参数指定的是我们感兴趣的那个套接字。

● hWnd 参数指定一个窗口句柄,它对应于网络事件发生之后,想要收到通知消息的那个窗口。

● wMsg 参数指定在发生网络事件时,打算接收的消息。该消息会投递到由hWnd窗口句柄指定的那个窗口。

(通常,应用程序需要将这个消息设为比Windows的WM_USER大的一个值,避免网络窗口消息与系统预定义的标准窗口消息发生混淆与冲突)

● lEvent 参数指定一个位掩码,对应于一系列网络事件的组合,大多数应用程序通常感兴趣的网络事件类型包括:

FD_READ、FD_WRITE、FD_ACCEPT、FD_CONNECT、FD_CLOSE。当然,到底使用FD_ACCEPT,还是使用FD_CONNECT类型,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值