epoll问题
请教 如何将这个函数 分开放到 EPOLL 读和写两个事件中
bool CMyEventServer::UnPackData(int clientindex)
{
	printf("开始解析西医保\r\n");
	if(clientindex<0)
		return false;
     char ins[55]={0};
	sprintf(ins,"---!!%d\r\n",clientindex);
	printf(ins);
	int readdata=0;
	readdata=recv(PropData[clientindex].s,
					&PropData[clientindex].data[PropData[clientindex].datalength],
					65536,0);
	if(readdata<0)
	{
		printf("数据包小于0");
		PropData[clientindex].datalength=0;
		memset(&PropData[clientindex].data,0,sizeof(PropData[clientindex].data));
		return false;
	}
	PropData[clientindex].datalength+=readdata;
	PACKHEAD m_head;
	memset(&m_head,0,sizeof(PACKHEAD));
	memcpy(&m_head,&PropData[clientindex].data,sizeof(PACKHEAD));
	if(m_head.IMPORTCODE!=MYCODE)
	{
		PropData[clientindex].datalength=0;
		memset(&PropData[clientindex].data,0,sizeof(PropData[clientindex].data));
		return false;	
	}
	if((m_head.PACKSIZE+sizeof(PACKHEAD)) > PropData[clientindex].datalength)
	{
		return false;	
	}
	else
	{
		if((m_head.PACKSIZE+sizeof(PACKHEAD)) == PropData[clientindex].datalength)
		{
			OnLogicMessage(clientindex,(LogicData *)&PropData[clientindex].data[sizeof(PACKHEAD)]);//send函数
			PropData[clientindex].datalength=0;
			memset(&PropData[clientindex].data,0,sizeof(PropData[clientindex].data));
			return true;
		}
		else
		{
			unsigned int haveunpack=0;
			while(1)
			{
				memset(&m_head,0,sizeof(PACKHEAD));
				memcpy(&m_head,&PropData[clientindex].data[haveunpack],sizeof(PACKHEAD));				
				if(m_head.IMPORTCODE!=MYCODE)
				{
					PropData[clientindex].datalength=0;
					memset(&PropData[clientindex].data,0,sizeof(PropData[clientindex].data));
					break;
				}				
				if((sizeof(PACKHEAD)+m_head.PACKSIZE) > 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;
}
------解决方案--------------------顶..