永发信息网

自己用C++写了一个WINDOWS服务,负责与多个客户端建立请求,停止服务时不知道咋写了

答案:2  悬赏:10  手机版
解决时间 2021-03-18 23:42
  • 提问者网友:你给我的爱
  • 2021-03-18 10:22
在停止服务时,如何处理sClient = accept(sListen, (SOCKADDR *)&clientAddr, &clientAddrLen); 这句.这句没有请求的情况,会阻塞在这里把?

while(true)
{
DWORD dwThreadId;
clientAddrLen = sizeof (SOCKADDR);
if (status.dwCurrentState == SERVICE_STOP_PENDING)
sClient = accept(sListen, (SOCKADDR *)&clientAddr, &clientAddrLen);
if(sClient == INVALID_SOCKET)
{
printf("Accepting new connection failed!\n");
}
else
{
HANDLE A = CreateThread(NULL,NULL,AnswerThread,(LPVOID)sClient,0,&dwThreadId);
if (A == NULL){
printf("failed");
} else {
//printf("s");
}
}
} 代码大概是这样
最佳答案
  • 五星知识达人网友:轮獄道
  • 2021-03-18 11:18
服务停止的时候,强行close socket, accept的阻塞就会结束,并报一个错误。
全部回答
  • 1楼网友:一秋
  • 2021-03-18 11:58
看来是没有了,只好用linux下client转成windows版本了,悲剧。。。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯