static void *OneNetServerThread(void *pArg)
{
int i,OldStatus,RetryCount,ReadyFdNum,MaxFd,UserIndex;
DWORD TimeOut,DelayCount=0,MaxDelayCount=10;
struct in_addr LocalAddr;
fd_set Rset,Wset;
char RecvBuf[2*1024];
int FdNum;
BOOL IsReReg=FALSE;
OnenetContext *pOnenetCtx=NULL;
int32_t CisError;
DWORD TimeOutMS,Len;
DWORD LastSysRunTime,CurrSysRunTime;
DWORD LastFlushTime=0,CurrFlushTime;
DWORD LastRegingTime=0,CurrRegingTime;
fd_set ReadFdSet;
TimeOut=50;
LocalAddr.s_addr=htonl(sFsuOneNetServer.IPAddr);
GET_CURRENT_SYS_TIME(LastSysRunTime);
for(RetryCount=0;;)
{
if(sFsuOneNetServer.IsReqServerQuit)
{
sFsuOneNetServer.IsReqServerQuit=FALSE;
break;
}
pthread_testcancel();
if(!sFsuOneNetServer.m_IsCreated)
{
pOnenetCtx = OnenetCreateInstance();
if (pOnenetCtx == NULL)
{
CisError = ONENET_ERRID_NOT_SUPPORT;
}
else
{
cissys_setIMEI(sFsuOneNetServer.m_IMEI);
cissys_setIMSI(sFsuOneNetServer.m_IMSI);
pOnenetCtx->config_len = (uint16_t)OnenetHex2Bin(pOnenetCtx->config_bin,ONENET_CONFIG_BUFFER,strlen(O