windows socket I/O模型之WSAAsyncSelect模型(异步IO模型)

本文详细介绍了Windows下的WSAAsyncSelect模型,该模型常用于处理多个连接,尤其适用于客户端程序。通过创建窗口并使用WSAAsyncSelect函数注册网络事件,如FD_READ和FD_CLOSE,当这些事件发生时,程序会接收到相应的Windows消息。文章还给出了MFC对话框模式下的应用示例,展示了如何初始化socket环境、建立连接、注册事件以及处理网络事件。
摘要由CSDN通过智能技术生成

当前Windows支持的各种Socket I/O模型,主要的模型如下:

    一:select模型

    二:WSAAsyncSelect模型

    三:WSAEventSelect模型

    四:Overlapped I/O 事件通知模型

    五:Overlapped I/O 完成例程模型

    六:IOCP模型

其中本文主要讲解WSAAsyncSelect模型,以一种无线通信信令模拟软件的客户端程序为例子,模拟软件是服务器软件和客户端软件组成,采用TCP通信。对于客户端程序来说,由于传输的数据量不大,只开启一个socket与服务器端进行通信,可以采用WSAAsyncSelect模型,这样可以避免采用线程方式的同步问题。WSAAsyncSelect模型是Windows下最简单易用的一种Socket I/O模型。利用这个模型,应用程序可在一个套接字上,接收以Windows消息为基础的网络事件通知。其优缺点如下:

优点:可在系统开销不大的情况下同时处理许多连接。

缺点:即使用不需要窗口(如服务器,控制台)它也不得不额外使用一个窗口。同时如果处理成千上万套接字的所有事件,性能可想而知。

MFCCSocket所使用的正是这种事件通知模型,要想使用WSAAsyncSelect模型,在应用程序中,首先必须用CreateWindow

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值