本帖最后由 VisualEleven 于 2011-05-17 21:34:12 编辑

解决方案 »

  1.   

    Event是内核对象,HANDLE只是一个标示符号而已。
    HANDLE和Event的关系,有点类似于指针变量和地址的关系,你把指针值任意拷贝,访问的都是相同的地址。话说这段代码写得真是隐晦啊,我看了半天都觉得你标记的那一行不对,EventTotal不是0么,结果一搜索发现居然做了一个++操作。了解完成端口的话,推荐你看Windows核心编程,那上面的例子都非常严谨、非常规范。
      

  2.   

    Windows网络编程书上的代码不是完整的,只是一个片段而已。
    肯定是会将一个OVERLAPPED结构体和一个SOCKET相关联起来的,类似这样的结构体
    typedef struct _SOCKET_OBJ_
    {
     SOCKET s; // 套接字
     .... // 与套接字相关的信息
    }SOCKET_OBJ, *PSOCKET_OBJ;typdef struct _OVERLAPPED_OBJ_
    {
     OVERLAPPED ol; // 重叠结构
     PSOCKET_OBJ pSocket; // 此IO结构体所属的套接字对象
     int nOperation; // 操作类型,比如Accept,Read,Write等
     ... // 其它
    }
      

  3.   

    同上.. HANDLE 句柄而已.