CSocketCtrl是我继承了CSocet的类,用线程函数ReConnect来后台重试连接服务器。线程里面调用Connect函数时,系统报错。请问该怎么解决?谢谢!
BOOL CSocketCtrl::CreateClient()
{
if (AfxSocketInit())
{
if (this->Create())
{
::AfxBeginThread(ReConnect, this);
}
}
return false;
}UINT ReConnect(LPVOID lpVoid)
{
CSocketCtrl* pSocket = (CSocketCtrl*)lpVoid;
while (!pSocket->Connect(pSocket->szIP, pSocket->sPort))
{
Sleep(1000);
}
return 1;
}
BOOL CSocketCtrl::CreateClient()
{
if (AfxSocketInit())
{
if (this->Create())
{
::AfxBeginThread(ReConnect, this);
}
}
return false;
}UINT ReConnect(LPVOID lpVoid)
{
CSocketCtrl* pSocket = (CSocketCtrl*)lpVoid;
while (!pSocket->Connect(pSocket->szIP, pSocket->sPort))
{
Sleep(1000);
}
return 1;
}
{
CSocketCtrl* pSocket = (CSocketCtrl*)lpVoid;
while (!pSocket->Connect(pSocket->szIP, pSocket->sPort))
{
pSocket->Close();
Sleep(1000);
}
return 1;
}
UINT ReConnect(LPVOID lpVoid)
{
CSocketCtrl* pSocket = (CSocketCtrl*)lpVoid;
assert(pSocket != NULL); // 断言只在debug版本生效
if(!pSocket)
{
return -1;
}
while (!pSocket->Connect(pSocket->szIP, pSocket->sPort))
{
Sleep(1000);
}
return 1;
}
File: sockcore.cpp
Line: 851