日期:2014-05-16 浏览次数:21268 次
void *RecvFromAPP(void *arg)
{
char buf[2048+1]={0};
char temp[2048+1]={0};
int pos=0;
int res=0;
int len=0;
while(1)
{
if(pos<len)
{
memset(temp,0,sizeof(temp));
memcpy(temp,buf+pos,len-pos);
memset(buf,0,sizeof(buf));
memcpy(buf,temp,len-pos);
pos=len-pos;
}
else
pos=0;
res=read_loop(app_arg.appsockfd,buf+pos,2048-pos);
if(res==-1)
break;
else if(res==0)
{
Socket_Delete(app_arg.appsockfd);
break;
}
else if(res>0)
{
len=pos+res;
pos=Packet_DetachFromAPP(buf,len); //这个是分成完整的包,并放到队列中,会用来队列锁
}
}
return NULL;
}