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服务,这样比较好调试。
先加一些Log日志等,看看你的服务代码跑到什么位置退出了,一般是发生了指针异常等
话说你是socket就直说呗,我还以为是Windows服务,可怜楼上的机器人老兄。。
会自动停止,那就检查一下在那个位置停止,找到那儿出问题就好办了