invalid conversion from ‘int*’ to ‘socklen_t*’
bool CNBSocket::Accept(CNBSocket& sockClient,sockaddr_in* pAddrClient,long lTimeOut)
{
assert(m_nTypeOfSocket == ST_ACCEPT);
assert(m_fdSocket != INVALID_SOCKET);
assert(sockClient.m_fdSocket == INVALID_SOCKET);
bool bRet = false;
int nSelectRet = -1;
if(lTimeOut == WAIT_FOREVER)
{
nSelectRet = 1;
}
else
{
FD_SET ReadSet;
FD_ZERO(&ReadSet);
FD_SET(m_fdSocket,&ReadSet);
TIMEVAL tv;
tv.tv_sec = lTimeOut;
tv.tv_usec = 0;
nSelectRet = select(1,&ReadSet,NULL,NULL,&tv);
}
if(nSelectRet == 1)
{
sockaddr_in addr;
int nAddrLen = sizeof(addr);
SOCKET fdClient = accept(m_fdSocket,(sockaddr*)&addr,&nAddrLen);
if(fdClient > 0)
{
if(pAddrClient != NULL)
{
memcpy(pAddrClient,&addr,sizeof(addr));
}
sockClient.m_fdSocket = fdClient;
bRet = true;
}
}
return bRet;
}
这个原本是VC下的代码 现在移植到Linux系统下后就报错 错误如题 这是怎么回事?