WSAEventSelect模型和重叠模型,有什么不同? 重叠有什么意思?

解决方案 »

  1.   

    Wi n s o c k提供了另一个有用的异步I / O模型。和W S A A s y n c S e l e c t模型类似的是,它也允许
    应用程序在一个或多个套接字上,接收以事件为基础的网络事件通知。对于表8 - 3总结的、由
    W S A A s y n c S e l e c t模型采用的网络事件来说,它们均可原封不动地移植到新模型。在用新模型
    开发的应用程序中,也能接收和处理所有那些事件。该模型最主要的差别在于网络事件会投
    递至一个事件对象句柄,而非投递至一个窗口例程。
    事件通知
    事件通知模型要求我们的应用程序针对打算使用的每一个套接字,首先创建一个事件对
    象。创建方法是调用W S A C r e a t e E v e n t函数,它的定义如下:
    W S A C r e a t e E v e n t函数的返回值很简单,就是一个创建好的事件对象句柄。事件对象句柄
    到手后,接下来必须将其与某个套接字关联在一起,同时注册自己感兴趣的网络事件类型,
    如表8 - 3所示。要做到这一点,方法是调用W S A E v e n t S e l e c t函数,对它的定义如下:
      

  2.   

    大家现在或许已经知道,其中每个函数都与一个套接字上数据的发送、数据接收以及连
    接的接受有关。因此,这些活动可能会花极少的时间才能完成。这正是每个函数都可接受一
    个W S A O V E R L A P P E D结构作为参数的原因。若随一个W S A O V E R L A P P E D结构一起调用这些
    函数,函数会立即完成并返回,无论套接字是否设为锁定模式(本章开头已详细讲过了)。它
    们依赖于W S A O V E R L A P P E D结构来返回一个I / O请求的返回。主要有两个方法可用来管理一
    个重叠I / O请求的完成:我们的应用程序可等待“事件对象通知”,亦可通过“完成例程”,对
    已经完成的请求加以处理。上面列出的函数( A c c e p t E x除外)还有另一个常用的参数:
    l p C o m p l e t i o n R O U T I N E。该参数指定的是一个可选的指针,指向一个完成例程函数,在重叠
    请求完成后调用。接下去,我们将探讨事件通知方法。在本章稍后,还会介绍如何使用可选
    的完成例程,代替事件,对完成的重叠请求加以处理。
      

  3.   

    有些人不愿意看书,愿意看web,所以我把书给你扳道web上了,但是比我强,我是web和书都不愿意看。