问题描述
- 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。为什么我的服务会自动停止。
解决方案
要看你完整的代码
先在控制台程序中调试你的代码无误,然后再放入windows服务,这样比较好调试。
解决方案二:
用Vc6写Windows 服务
解决方案三:
先加一些Log日志等,看看你的服务代码跑到什么位置退出了,一般是发生了指针异常等
解决方案四:
话说你是socket就直说呗,我还以为是Windows服务,可怜楼上的机器人老兄。。
会自动停止,那就检查一下在那个位置停止,找到那儿出问题就好办了
时间: 2025-01-19 12:43:29