msdn找select,最后有一个note,内容如下:
The select function has no effect on the persistence of socket events registered with WSAAsyncSelect or WSAEventSelect.
这句话的意思是否是说,那些已经在WSAAsyncSelect或WSAEventSelect注册的socket句柄,再去用select函数检测状态是无效的?
不过,实际上我在用WSAAsyncSelect注册了FD_WRITE事件后,再用select去检测是否可写(用的是检测时间为0立即返回,不是NULL无限等待),都可以返回正确的结果(不可写返回0,可写返回1)。
那么msdn这段话究竟该怎么理解?

解决方案 »

  1.   

    那就奇怪了,msdn何必特意用note去突出指明一个实际上仍然是有效的操作为无效操作。
    难道存在什么特殊情况?
      

  2.   

    这句话的意思应该如果socket 句柄 再被WSAAsyncSelect or WSAEventSelect 注册了,那么之前的select 函数 将不再生效。和lz的理解正好相反。
      

  3.   

    我觉得翻译的不对,说的是persistence ,而不是句柄应该是 select函数对 WSAAsyncSelect 或者 WSAEventSelect 注册的事件的持续性无效。
    也就是说select函数不会修改已经用WSAAsyncSelect 或者 WSAEventSelect 注册的事件。
      

  4.   

    The select function has no effect on the persistence of socket events registered with WSAAsyncSelect or WSAEventSelect. 
    不是应该是说,用select函数检测状态并不会影响那些已经在WSAAsyncSelect或WSAEventSelect注册的socket事件的持续性(也就是说select检测了,事件仍会发生)........