一直运行的好好的IOCP居然在WIN7下面不正常,该鄙视微软还是该鄙视我自己喃,求大家指点下啊,情况是这样的:正常流程下:我通过AcceptEx投递一个套接字,当GetQueuedCompletionStatus返回false并且发现是投递的AcceptEx套接字时,把这个套接字通过DissconnectEx回收然后重用但是在WIN7下,这个被回收的套接字再次去AcceptEx时,却返回10022错误求大家指点,这个套接字在WIN7的正确回收方法是什么?

解决方案 »

  1.   

    10022 指参数错误,是不是回收的socket fd已经被你释放了?
      

  2.   


    不会的哈.. 这些个程序代码应该是没问题的,在win2003或者xp上跑了很久了,关键是这个回收的思路是否有问题,win7下才出现的哈
      

  3.   

    有代码单步调试下,ms从vista开始对一些和安全相关的接口进行调整过。例如在xp下对注册表访问很轻松,但是在win7下,有很多节点是不让普通用户访问的。你可能使用了某些这类接口,导致在win7下无法正常运行。