66 lines
1.4 KiB
C++
66 lines
1.4 KiB
C++
#ifndef MessageThreadH
|
|
#define MessageThreadH
|
|
|
|
#include "thread.h"
|
|
#include "Socket.h"
|
|
#include "MessageDef.h"
|
|
|
|
#pragma once
|
|
|
|
// CUDPMessageReceiveThread
|
|
//
|
|
class CUDPMessageReceiveThread : public CThread
|
|
{
|
|
public:
|
|
void Main();
|
|
CUDPMessageReceiveThread(unsigned int nStackSize, CUDPSocket * pSocket);
|
|
virtual void Terminate() ;
|
|
|
|
protected:
|
|
CUDPSocket * m_pSocket;
|
|
char m_sBuf[MAX_UDP_PACKET_SIZE];//实现一次读取需要的变量
|
|
|
|
TNETMESSAGE * ReadMessage(unsigned int &nIpAddr,unsigned short &nPort);
|
|
};
|
|
|
|
/////////////////////////////////////////////////////////////////////
|
|
//
|
|
// CMessageHandleThread
|
|
//
|
|
class CMessageHandleThread : public CThread
|
|
{
|
|
public:
|
|
void Main();
|
|
CMessageHandleThread(unsigned int nStackSize, CUDPSocket * pSocket);
|
|
virtual void Terminate() ;
|
|
|
|
void SetPeerAddress( unsigned int nIpAddr,unsigned short nPort ){
|
|
m_nPeerIp = nIpAddr;
|
|
m_nPeerPort = nPort;
|
|
};
|
|
|
|
void SetRequestMsg( TNETMESSAGE* pMsg ){
|
|
m_pRequestMsg = pMsg;
|
|
};
|
|
|
|
protected:
|
|
CUDPSocket * m_pSocket;
|
|
unsigned int m_nPeerIp;
|
|
unsigned short m_nPeerPort;
|
|
|
|
TNETMESSAGE * m_pRequestMsg;
|
|
|
|
void HandleGerneralMessage();
|
|
void HandleUpdateMessage();
|
|
void HandleUploadMessage();
|
|
|
|
int SendMessage( TNETMESSAGE * pMsg );
|
|
};
|
|
|
|
#pragma warning( disable : 4786 )
|
|
#include <list>
|
|
using namespace std;
|
|
|
|
typedef list< CMessageHandleThread* > MHTHREADLIST;
|
|
|
|
#endif //_MESSAGETHREAD_H_
|