cosmosht
2015-08-13 05:55
采纳率: 0%
浏览 1.4k

VC6 写windows服务问题,请高手帮忙指点一下

UINT _MainThread(LPVOID lparam)//主线程
{
cout<<"_MainThread Start!"< CString dspmsg;
UINT timeID1 = 0;
if (!m_pFSockServer->Create(gListenPort) )
{
exitService(GetError(GetLastError()));
return -1;
}
if (!m_pFSockServer->Listen())
{
exitService(GetError(GetLastError()));
return -1;
}

dspmsg.Format("开始监听%d端口", gListenPort);
LogUtil::Logger(LOG_INFO,(LPCTSTR)dspmsg);
cout << "开始监听端口[" << gListenPort << "]" << endl;
//建立控制句柄
if(SetConsoleCtrlHandler((PHANDLER_ROUTINE)CtrlHandler, TRUE) == FALSE)
{
    exitService("不能建立控制句柄");
    return -1;
}
CClientSocket connSock;
SOCKET hSock;
while (1)
{
    //开始接收请求数据
    if(!m_pFSockServer->Accept(connSock))
    {
        Sleep(1);
        continue;
    }
    hSock = connSock.Detach();
    if (hSock !=INVALID_SOCKET)
    {
        ::AfxBeginThread(_ListenThread, (LPVOID)hSock);
    }
}

LogUtil::Logger(LOG_INFO,"服务结束运行");
return 0;

}

大家帮忙指点一下上面这段代码有什么BUG。为什么我的服务会自动停止。

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • threenewbee 2015-08-13 05:59

    要看你完整的代码

    先在控制台程序中调试你的代码无误,然后再放入windows服务,这样比较好调试。

    打赏 评论
  • oyljerry 2015-08-13 06:28

    先加一些Log日志等,看看你的服务代码跑到什么位置退出了,一般是发生了指针异常等

    打赏 评论
  • zuishikonghuan 2015-08-13 13:54

    话说你是socket就直说呗,我还以为是Windows服务,可怜楼上的机器人老兄。。
    会自动停止,那就检查一下在那个位置停止,找到那儿出问题就好办了

    打赏 评论

相关推荐 更多相似问题