在Windows系统服务(Windows NT Service)中使用CAsyncSocket的问题
自己做了一个可以支持MFC的系统服务,没有用ATL的COM架构。
在ServiceMain中建立了一个CAsyncSocket对象,调用Create成功并用Connect试图连接到另一台服务器。
服务器端收到了连接请求并Accept了(可以保证服务器端代码无问题)。
但是在服务中的CAsyncSocket对象始终没有响应OnConnect函数,百思不得其解。
不知道是不是因为CAsyncSocket不是一个线程安全对象的原因。
且该对象未经改动在其他Windows程序(不是服务)中工作正常。
而我重写了CAsyncSocket并用WSAEventSelect和WSAWaitForMultipleEvents代替了原来的CAsyncSocket中的消息泵以后,该对象在服务中可以工作了,但是不稳定。
所以我想请教各位达人,CAsyncSocket为什么在Windows NT Service中工作不正常呢?