64,687
社区成员
发帖
与我相关
我的任务
分享
#include <winsock2.h>
#include <windows.h>
#include <queue>
#include <stdio.h>
using namespace std;
class CVCTComTask
{
public:
int AudmComTask();
public:
HANDLE m_MsgHandle;
HANDLE m_tmHandle;
int m_TpaRecvTimer;
int m_TpaHandShakeTimer;
int m_TpaSendAddrTimer;
public:
DWORD WINAPI winVctMsgTask(LPVOID lpParameter);
int TimerTask();
int RecvTimer();
int SendTimer();
int HartTimer();
int ReceiveMessage(MESSAGE& NewMsg);
};
int CVCTComTask::AudmComTask()
{
m_MsgHandle = CreateThread(NULL, 0,(LPTHREAD_START_ROUTINE )VctMsgTask,NULL, 0, NULL);
m_tmHandle = CreateThread(NULL, 0,(LPTHREAD_START_ROUTINE )TimerTask,NULL, 0, NULL);
return 1;
}
int CVCTComTask::VctMsgTask()
{
MESSAGE stMsg;
int flag = 0;
while (1)
{
flag = 0;
flag = ReceiveMessage(stMsg);
if (1 == flag)
{
continue;
}
//processMsg(stMsg);
memset(&stMsg, 0, sizeof(stMsg));
Sleep(1);
}
return 0;
return 1;
}
int CVCTComTask::TimerTask()
{
MSG msg;
printf("Start Get Timer!!!\n");
/* 收包 定时器*/
m_TpaRecvTimer = SetTimer(NULL, 1, 50, (TIMERPROC)RecvTimer);
m_TpaSendAddrTimer = SetTimer(NULL, 2, 10000, (TIMERPROC)SendTimer);
while(GetMessage(&msg,NULL,0,0))
{
if (1 == m_hflag)
{
m_TpaHandShakeTimer= SetTimer(NULL,3,500,(TIMERPROC)HartTimer);
m_hflag = 0;
}
TranslateMessage(&msg);
DispatchMessage(&msg);
Sleep(1);
}
return 1;
}