使用如下的线程接收数据,但是在网络断开或者网络故障时,线程无法自动退出,请问有什么好的方法来解决
DWORD WINAPI Recvthread(LPVOID lpparam)
{
SOCKET m_socket=(SOCKET)lpparam;
int ret;
int i ;
ofstream of2("rev.txt");
unsigned char buff[256];
of2<<" 接收进程启动 "<<endl;
while(1)
{
ret=recv(m_socket,(char *)buff,256,0);
//of2<<" 网络状态 "<<ret<<" 网络状态 "<<m_socket<<endl;
if(ret==SOCKET_ERROR)
{
RevLen=0;
closesocket (m_socket);
return -1;
}
else
{
RevLen=ret;
for(i=0;i<ret;i++)
{
RevBuff[i]=buff[i];
}
}
}
return 0;
}