当前位置: 技术问答>linux和unix
epoll问题
来源: 互联网 发布时间:2016-02-13
本文导语: 请教 如何将这个函数 分开放到 EPOLL 读和写两个事件中 bool CMyEventServer::UnPackData(int clientindex) { printf("开始解析西医保rn"); if(clientindex PropData[clientindex].datalength-haveunpack) { memset(&tmpbuff,0,sizeof(tmpbuff)); memc...
请教 如何将这个函数 分开放到 EPOLL 读和写两个事件中
bool CMyEventServer::UnPackData(int clientindex)
{
printf("开始解析西医保rn");
if(clientindex PropData[clientindex].datalength-haveunpack)
{
memset(&tmpbuff,0,sizeof(tmpbuff));
memcpy(&tmpbuff,&PropData[clientindex].data[haveunpack],PropData[clientindex].datalength-haveunpack);
PropData[clientindex].datalength=PropData[clientindex].datalength-haveunpack;
memset(&PropData[clientindex].data,0,sizeof(PropData[clientindex].data));
memcpy(&PropData[clientindex].data,&tmpbuff,PropData[clientindex].datalength);
break;
}
OnLogicMessage(clientindex,(LogicData *)&PropData[clientindex].data[haveunpack+sizeof(PACKHEAD)]);//send函数
haveunpack+=(m_head.PACKSIZE+sizeof(PACKHEAD));
}
}
}
return true;
}
bool CMyEventServer::UnPackData(int clientindex)
{
printf("开始解析西医保rn");
if(clientindex PropData[clientindex].datalength-haveunpack)
{
memset(&tmpbuff,0,sizeof(tmpbuff));
memcpy(&tmpbuff,&PropData[clientindex].data[haveunpack],PropData[clientindex].datalength-haveunpack);
PropData[clientindex].datalength=PropData[clientindex].datalength-haveunpack;
memset(&PropData[clientindex].data,0,sizeof(PropData[clientindex].data));
memcpy(&PropData[clientindex].data,&tmpbuff,PropData[clientindex].datalength);
break;
}
OnLogicMessage(clientindex,(LogicData *)&PropData[clientindex].data[haveunpack+sizeof(PACKHEAD)]);//send函数
haveunpack+=(m_head.PACKSIZE+sizeof(PACKHEAD));
}
}
}
return true;
}
|
顶..