入口 OnReadMessage

来源:互联网 发布:餐厅日报表的算法 编辑:程序博客网 时间:2024/04/28 22:10

LRESULT CGMToolDlg::OnReadMessage(WPARAM wParam,LPARAM lParam)

{

int err;

/*

static link_struct *pLinkHead = NULL;

static int state = 0;

   static int pblen =0;


int nReceive = 0;

char buf[8] = 0;

link_struct * listNode = (link_struct *)wParam;


switch(state)

{

case 0:

pLinkHead = NULL;

state = 0;

pblen =0;


pLinkHead = MergeLink(pLinkHead,listNode);

memcpy(buf,listNode->RecvBuf,8);

pblen = *(int*)(buf+4);

while(listNode)

{

nReceive += sizeof(listNode->RecvBuf);

listNode = listNode->next;

}

if(pblen + sizeof(CLIENT_PACKET)>nReceive )                          //一个包没接完

state =1;

else if(pblen + sizeof(CLIENT_PACKET)<=nReceive )               //一个包接完了

{

pLinkHead = ParsePacketOneLink(pLinkHead );

state = 0;

        nReceive = 0;

         ZeroMemory(buf,8);

listNode = NULL;

}

break;

case 1:

pLinkHead = MergeLink(pLinkHead,listNode);

link_struct *pHead = pLinkHead;

while(pLinkHead)

{

nReceive += sizeof(pLinkHead->RecvBuf);

pLinkHead pLinkHead->next;

}

pLinkHead =pHead;

if(pblen + sizeof(CLIENT_PACKET)<=nReceive )               //一个包接完了

{

pLinkHead = ParsePacketOneLink(pLinkHead );

state = 0;

        nReceive = 0;

         ZeroMemory(buf,8);

listNode = NULL;

}

break;

}

*/

err = CClientPacket::ParsePacket(this,(link_struct*)wParam);

if(err == ERR_CONN_CLOSED || err == ERR_FATAL)

{

return 0;

}

return 0;

}


0 0
原创粉丝点击