#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 using namespace std; typedef list< CMessageHandleThread* > MHTHREADLIST; #endif //_MESSAGETHREAD_H_