📄 serverthread.h
字号:
#if !defined(AFX_SERVERTHREAD_H__F2BC4D1E_950F_4A91_9BED_86F9718374A1__INCLUDED_)
#define AFX_SERVERTHREAD_H__F2BC4D1E_950F_4A91_9BED_86F9718374A1__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// ServerThread.h : header file
//
#include "TcpSocket.h"
#include "CmppPdu.h"
//#include "define.h"
/////////////////////////////////////////////////////////////////////////////
// CServerThread thread
typedef struct tagOverFee
{
int iFeeType; //错误指令计费类别=2
int iMotomtFlag; //错误指令MOTOMTFLAG=0
int iFeeValue; //错误指令信息费=10
int iGivenValue; //错误指令赠话费=0
CString strServiceType; //错误指令业务代码
}OVERFEE,*POVERFEE;
typedef struct tagFiltrateMessage
{
CString strFilMsg; //过滤内容
CString strFeedBack; //过滤反馈
BOOL bFeedBack; //是否反馈
}FiltrateMsg;
class CServerThread : public CWinThread
{
DECLARE_DYNCREATE(CServerThread)
public:
CServerThread(); // protected constructor used by dynamic creation
// Attributes
public:
// Operations
public:
CCmppPdu m_stPdu; //
CTcpAsyncSocket m_stMoniterSocket;
char m_szDSN[101];
int m_nMaxIdleTimes;
CDatabase m_database; //
int m_nSourceNode; //源节点代码
char m_szSPNumber[21]; //特服号
char m_szCorpId[21]; //企业代码
int m_nWaitAnsTimes; //
int m_nReConnectTimes; //
int m_nMaxRetryTimes; //最大重发次数
char m_szUserName[21]; //
char m_szPassword[21]; //
char m_szTableName[50]; //
char m_szSubmitLogTableName[101]; //
BOOL m_bSubmitLogToEveryDayTable; //
int m_nMoniterPort; //监控端口
char m_szActiveFlag[50]; //程序活动文件名
BOOL bLongMessageFree; //超长段消息是否免费
int m_nContinueSendCount; //自定义发送人,用于聊天类节目
int m_nExpireSpan ; //短信息有效期限(秒)
BOOL m_bCustomSpNumber;
CArray <CTcpAsyncSocket*,CTcpAsyncSocket*> m_stMoniterNodeBuf;
int m_nTotalServer;
int m_nQuerRecordTimes;
int m_nContinueSendTimes;
int iMobileTypeNum;
OVERFEE m_overfee,m_tplsfee,m_freefee;
int m_nIndex;
int m_nPriority; //发送优先级
int m_nFiltrateNum;
BOOL m_bFiltrate;
int m_nFilType;
FiltrateMsg *m_sFiltrateMsg;
CString *m_pstrFreeUser;
int m_nFreeUserNum;
BOOL m_bFreeUser;
BOOL m_bConnectToDB;
bool ACTIVE_FLAG;
int SHORT_MESSAGE_SPLIT_LENGTH;
bool g_bServerThreadExit;
int m_nRptMsgFlag;
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CServerThread)
public:
virtual BOOL InitInstance();
virtual int ExitInstance();
virtual int Run();
//}}AFX_VIRTUAL
// Implementation
public:
int SendCmppConnect(SServerNodeBuffer *pstNode);
BOOL SendCmppActiveTest(SServerNodeBuffer *pstNode);
BOOL ConnectServer(SServerNodeBuffer *pstNode);
void HandleActiveTest();
void ProcessIdle();
void ResendMessage(int nTaskID);
void HandleTask();
void AddToTaskList(SServerNodeBuffer *pstServerNodeBuf,unsigned char* szBuf,int nLen,int nSequence);
int SendCmppTerminate(SServerNodeBuffer *pstNode);
void AddToMoniterList(CTcpAsyncSocket* pstClientSocket);
CString GetLeftTChar(CString strSrc, int iWordsNum, int iStartPos, int &iDestStrLength);
int GetWorsNumOfStr(CString strMsg);
int SendPacket(CTcpAsyncSocket *pstSocket, unsigned char *szSendBuf, int nSendLen);
int SendMessage(CString strMobile,CString strTempMessage,CString strChargeNumber,CString strSender,CString strServiceType,CString strLinkID,char cFeeType,CString strFeeValue,CString strGivenValue,const char* szScheduleTime,char cMessageCoding,int nMOtoMTFlag,int iStatusRpt,int mobiletype,int feenumtype);
BOOL AnalyseMessage(CString *strSrc, CString *strDest);
BOOL AnalyseMessage(CString &strSrc,CString &strDest,CString strDivision);
BOOL SubmitToDatabase(const char *szSql);
void SubmitToSendFilLog(const char *szMsg,const char *szMobile,const char *szSender,const char *szFeeNum, const char * szServiceType,int cFeeType,const char * szFeeValue,const char * szGivenValue,int nMotoMtFlag);
void WriteActiveFlag();
int GetMinUnHandleServerIndex();
BOOL InitSocket();
void Quit();
void LogMsg(const char* szMsg);
void LoadFreeUser();
void LoadFiltrateMsg();
BOOL IsFiltrateMsg(CString strMessage,CString &strReBack,BOOL &bFeedBack);
BOOL IsFreeUser(CString strMobile);
void QueryRecord();
BOOL ConnectDB();
void LoadIni();
int SendShortMessage(const char* szUserNumber,const char* szMessageContent,const char* szChargeNumber,
const char* szSender,const char* szServiceType,const char *szLinkID,char cFeeType,const char *szFeeValue,const char* szGivenValue,
const char* szScheduleTime,char cMessageCoding,char cMOrelatetoMTFlag,int iStatusRpt=0,int iPriority=0,int iMsgType=0,int iExpireTimeSpan=28800,int mobiletype=0,int feenumtype=0);
void SubmitToSendMsgLog(const char *szMsg,const char *szMobile,const char *szSender,const char *szFeeNum,const char * szServiceType,const char * szLinkID,int cFeeType,const char * szFeeValue,const char * szGivenValue,int nMotoMtFlag);
// void LogByFeeMsg(int iNumberID,CString strMobile);
virtual ~CServerThread();
// Generated message map functions
//{{AFX_MSG(CServerThread)
// 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_SERVERTHREAD_H__F2BC4D1E_950F_4A91_9BED_86F9718374A1__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -