写了一个服务端程序,在接受连接前(accept(...)),调用select函数选择FD_ACCEPT和FD_CLOSE事件。当该程序作为应用程序运行时,选择事件这段代码不会出问题。而将其注册为服务启动时,选择事件的时候,经常在监听连接的该套节子上,发生FD_CLOSE事件或者是未知的网络事件,不知为何?按道理该套接字不会关闭才对啊

解决方案 »

  1.   

    应该在ACCEPT之后调用select吧!
      

  2.   

    建议在服务程序入口函数中,加上sleep(1000*3)
      

  3.   

    你是用WSAAsyncSelect实现事件通知的吧?
    如果是:
      你的服务程序有窗体吗?(可以自己创建的,用来接收消息)
      如果没有窗体,可能会导致这种错乱其它原因,帮你调查一下。
      

  4.   

    还是不行,我用的是select实现事件通知,没有用到WSAAsyncSelect。确实没有窗体,但是select这个函数应该没关系吧?