一个多线程socket的问题
这个是我的answer线程,我希望可以当接收到“shutdown”的时候,可以让主函数中的listen的while(1)终止 并且
closesocket( AcceptSocket);
WSACleanup();
unsigned __stdcall AnswerThread(LPVOID lparam)
{
SOCKET ClientSocket=(SOCKET)(LPVOID)lparam;
int bytesRecv;
char sendbuf[32]="";
char recvbuf[32]="";
while(1)
{
bytesRecv=SOCKET_ERROR;
for(int i=0;i<32;i++)
{ recvbuf[i]='\0'; }
while(bytesRecv==SOCKET_ERROR)
{ //Receiving Data
bytesRecv=recv(ClientSocket,recvbuf,32,0);
}
if(strcmp(recvbuf,"close")==0)
{
strcpy(sendbuf,"Closed Session");
send(ClientSocket,sendbuf,32,0);
printf("Closed Session\n");
_endthreadex( 0 );
return 0;
}
if(strcmp(recvbuf,"shutdown")==0)
{
strcpy(sendbuf,"Closed Session, Server Shutdown");
send(ClientSocket,sendbuf,32,0);
printf("Closed Session\n");
printf("Server Shutdown");
closesocket( ClientSocket);
_endthreadex( 0 );
return 0;
}
send(ClientSocket,recvbuf,strlen(recvbuf),0);
printf("%s\n",recvbuf);
Sleep(0);
}
return 1;
}
多谢各位大哥了。。