⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 deliverthread.h

📁 vc开发的一个cmpp(中国移动点对点通讯)通讯程序
💻 H
字号:
#if !defined(AFX_DELIVERTHREAD_H__E8EB904B_D293_4FDE_8426_F12AE7F72B5D__INCLUDED_)
#define AFX_DELIVERTHREAD_H__E8EB904B_D293_4FDE_8426_F12AE7F72B5D__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// DeliverThread.h : header file
//

#include "TcpSocket.h"
#include "CmppPdu.h"
//#include "define.h"

/////////////////////////////////////////////////////////////////////////////
// CDeliverThread thread
typedef struct tagCmdTable
{

	CString		    strSender;		//特服号
	unsigned short	iSenderType;	//
	CString		    strCmd;			//指令
	unsigned short	iMatchType;		//匹配类型	
	CString		    strMoTab;		//MO表名
	unsigned short	iMoTabNum;		//MO表个数
}SCmdTable,*PSCmdTable;

typedef struct tagDefFee
{
	int	iFeeType;			//错误指令计费类别=2
	int iMotomtFlag;		//错误指令MOTOMTFLAG=0
	int iFeeValue;			//错误指令信息费=10
	int	iGivenValue;		//错误指令赠话费=0
	CString	strServiceType;	//错误指令业务代码
}DEFFEE,*PDEFFEE;

class CDeliverThread : public CWinThread
{
	DECLARE_DYNCREATE(CDeliverThread)
public:
	CDeliverThread();           // protected constructor used by dynamic creation

// Attributes
public:
	CCmppPdu		m_stPdu;						//

	int				m_nNumOfGameCmd ;
	CTcpAsyncSocket m_stMoniterSocket;
	char			m_szUserName[7];
	char			m_szPassword[11];
	char			m_szDeliverLogTableName[101];
	BOOL			m_bDeliverToEveryDayTable;
	char			m_szDSN[101];
	int				m_nMoniterPort;
	int				m_nMaxIdleTimes;
	char            m_szErrorTable[50];
	char            m_szHelp[140];

	CDatabase		m_database;
	CArray <CTcpAsyncSocket*,CTcpAsyncSocket*>		m_stMoniterNodeBuf;
	PSCmdTable		m_astCmdTab;
	CCriticalSection* m_pSection;
	DEFFEE			m_deffee;

	char m_szSPNumber[21];
    BOOL m_bReport;

	BOOL m_bMonth;
	char m_szMonthTable[50];

	BOOL m_bChat;
	int  m_nChatLen;
	char m_szChatTable[50];
	BOOL m_bRecieve;
    char m_szTableName[50];
	BOOL    m_bConnectDeliverDB;
	BOOL g_bDeliverThreadExit;
	char			m_szCorpId[21];					//企业代码
	int iFirst ;
	int  m_iRptMsgID;
// Operations
public:

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CDeliverThread)
	public:
	virtual BOOL InitInstance();
	virtual int ExitInstance();
	virtual int Run();
	//}}AFX_VIRTUAL

// Implementation
public:
	int CDeliverThread::SendCmppTerminateResp(SServerNodeBuffer *pstNodeBuf, const char *szRecvBuf);
	void ProcessIdle();
	int SeekTask(int nSequence);
	void HandleSubmitRespPdu(SServerNodeBuffer *pstNodeBuf, const char *szRecvBuf);
	void SubmitToDeliverLog(const char *szMsg, const char *szSAddr, const char *szDAddr, const char *szLinkID);
	void SubmitToSend(const char *szMsg, const char *szSAddr, const char *szDAddr,const char *szLinkID,BOOL bCancle);
	void SubmitToMonthTable(const char *szMsg, const char *szSAddr, const char *szDAddr,const char *szLinkID, const char *szTable);
	void SubmitToTable(const char *szMsg, const char *szSAddr, const char *szDAddr,const char *szLinkID, const char *szTable);
	BOOL IsFindedMoTable(int nIndex,CString strCmd, CString &strMoTab );
	void GetMoTabName(CString strMsg, CString &strMoTab, const char * szDestAddr);
	BOOL HandleReportPdu(SServerNodeBuffer *pstNodeBuf,const char* szRecvBuf);
	BOOL HandleDeliverPdu(SServerNodeBuffer *pstNodeBuf,const char* szRecvBuf);
	int SendCmppDeliverResp(SServerNodeBuffer *pstNodeBuf,const char* szRecvBuf,const char * szMsgId,int result);
	void HandleDeliverMsg(SServerNodeBuffer *pstDeliverNode,char *szRecvBuf,int nLen);
	void AddToMoniterList(CTcpAsyncSocket* pstClientSocket);
	int SendCmppConnect(SServerNodeBuffer *pstNode);
	BOOL ConnectServer(SServerNodeBuffer *pstNode);
	BOOL InitSocket();
	int SendPacket(CTcpAsyncSocket *pstSocket,unsigned char* szSendBuf,int nSendLen);
	void LogMsg(const char* szMsg);
	void LoadCmdTab();
	BOOL ConnectDB();
	void LoadIni();
	void WriteFaildLog(CString strMobile,int iResult);
	void UpdateMsgID(int nTaskID,CString strMsgID);
	virtual ~CDeliverThread();

	// Generated message map functions
	//{{AFX_MSG(CDeliverThread)
		// NOTE - the ClassWizard will add and remove member functions here.
	//}}AFX_MSG

	DECLARE_MESSAGE_MAP()
};

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_DELIVERTHREAD_H__E8EB904B_D293_4FDE_8426_F12AE7F72B5D__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -