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

📄 sgipsock.h

📁 移动
💻 H
字号:
#if !defined(AFX_NOKIASOCK_H__7BAC9F1D_C0FE_406B_90F9_C32214152010__INCLUDED_)
#define AFX_NOKIASOCK_H__7BAC9F1D_C0FE_406B_90F9_C32214152010__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
//#include "sme.h"
#include "afxsock.h"
//#include "logfile.h"
//extern CLogFile g_log;
//***************************************************************************
//command id
#define SGIP_BIND	0x1
#define SGIP_BIND_RESP	0x01000080//0x80000001
#define SGIP_UNBIND	0x2
#define SGIP_UNBIND_RESP	0x80000002
#define SGIP_SUBMIT	0x3
#define SGIP_SUBMIT_RESP	0x80000003
#define SGIP_DELIVER	0x4
#define SGIP_DELIVER_RESP	0x80000004
#define SGIP_REPORT	0x5
#define SGIP_REPORT_RESP	0x80000005
#define SGIP_ADDSP	0x6
#define SGIP_ADDSP_RESP	0x80000006
#define SGIP_MODIFYSP	0x7
#define SGIP_MODIFYSP_RESP	0x80000007
#define SGIP_DELETESP	0x8
#define SGIP_DELETESP_RESP	0x80000008
#define SGIP_QUERYROUTE	0x9
#define SGIP_QUERYROUTE_RESP	0x80000009
#define SGIP_ADDTELESEG	0xa
#define SGIP_ADDTELESEG_RESP	0x8000000a
#define SGIP_MODIFYTELESEG	0xb
#define SGIP_MODIFYTELESEG_RESP	0x8000000b
#define SGIP_DELETETELESEG	0xc
#define SGIP_DELETETELESEG_RESP	0x8000000c
#define SGIP_ADDSMG	0xd
#define SGIP_ADDSMG_RESP	0x8000000d
#define SGIP_MODIFYSMG	0xe
#define SGIP_MODIFYSMG_RESP	0x0000000e
#define SGIP_DELETESMG	0xf
#define SGIP_DELETESMG_RESP	0x8000000f
#define SGIP_CHECKUSER	0x10
#define SGIP_CHECKUSER_RESP	0x80000010
#define SGIP_USERRPT	0x11
#define SGIP_USERRPT_RESP	0x80000011
#define SGIP_TRACE	0x1000
#define SGIP_TRACE_RESP	0x80001000
//****************************************************************************

#define MAX_ERRTEXT         600
#define MAX_SMPP_COM_BUF	1000
#define MAX_SGIP_RSP_BUF_LEN 21
//#define MAX_HOSTNAME    16                 //平台主机名最大长度
#define MAX_SGIP_MSGLEN      280                //所发短信最大长度,如为中文,应为160/4=40
#define MAX_SGIP_LOGINTIME   3                //登录最大超时时间()
#define MAX_SGIP_LOGOUTTIME  2                //退出最大超时时间
#define MAX_SGIP_SUBTIME     3                 //发送短信最大超时时间
#define MAX_SGIP_ALIVETESTTIME     1           //活动测试最大超时时间

#define CMD_LINEOUT    0X3102288
#pragma pack(1)
struct SGIP_MESSAGE_HEAD 
{
	DWORD	command_length	;	//消息包的长度,包括此字段
	DWORD	command_id		;	//表明此条短消息的类型
	DWORD	SP		;
	DWORD	itime	;
	DWORD	no		;
};

//#define SGIP_PRINTOUT	//printf

inline void SGIP_PRINTOUT(const char* STR)     
{     
/*	char  STRA[400],timeChar[30];time_t dt;time(&dt); memset(timeChar,0,30);   
	strftime(timeChar,30,"%Y-%m-%d %H:%M:%S",localtime((const long*)&dt));     
	sprintf(STRA,"%s--->%s",timeChar,STR);                                     
	CWnd *pWnd =AfxGetMainWnd(); 
	if(pWnd)
		pWnd->SendMessage(WM_COMMAND,(WPARAM)CMD_LINEOUT,(LPARAM)STRA);         
	g_log.LogtoFile((char*)STRA); 
	*/
	TRACE("%s\n",STR);
}

//#define SGIP_PRINTOUT TRACE
class  CSGIPSock : public CSmsSock
{
private:
	int m_sequence;	//消息序列号
	//int m_defaultPeroid;	//缺省的超时值
	struct tagSMSCInfo
	{
		char SMSCIP[16];
		UINT uPort;
		char usrName[50];
		char passWd[50];
	}m_smscInfo;
public:
	HANDLE m_hEventMainOver;
public:
	CSGIPSock();
	virtual ~CSGIPSock();
public:
	void savebuffertofile(const char * buf);
	int GetRespState(int state, char *pcresp);
	void OnClose();
	void ClearBuffer();
	void SetUser(char *puser,char *pwd);
	void SetPort(int port);
	void SetHostName(char *phost);
	int  fDisconnect();
	int  fConnect(char* host,unsigned int port);
	int  fAliveTst();
	int  fLogout(bool bResp=FALSE);
	int  fLogin(char* usrname,char* passwd);
	int  fLogin1(char* usrname,char* passwd);
	int  fSendSM( char* destadd, char* srcadd,const char* sendmsg,bool bResp=FALSE);
	int  fSendSM1( char* destadd, char* srcadd,const char* sendmsg,bool bResp=FALSE);
	int  fReceive(BYTE* lpBuf, int nBufLen);
	//void fShowErr(int nErrcode);
	//{{AFX_VIRTUAL(CSGIPSock)
	//}}AFX_VIRTUAL
	//{{AFX_MSG(CSGIPSock)
	//}}AFX_MSG
private:
	void network_head(struct SGIP_MESSAGE_HEAD* phead);
	int  fill_message(BYTE* pbody,const char* msg);

	inline DWORD network_dword(DWORD v)	 //转换网络字节序
	{
		return ((v)<<24) | (((v)&0xff00)<<8) | (((v)>>8)&0xff00) | ((v)>>24);
	}
	//BOOL fWaitforSend(int nType);
	//int   fCodeMsg(BYTE* msg,int& nmsgLen);
	//void  fShowSmeErr(BYTE * lpBuf);
	//int   fWaitForSingleObject(HANDLE hHandle);
	//void  fPacknum(void* pBuf);
	int CreateSocket();
protected:
	void GetSequence(BYTE *pbuf,int *ps);
	void AddSequenceNO(char *buf,char *sp,int no);
	void ModifyStr(char *buf,char *src,int len);
	char * AddStrToBuf(char *buf,char *src,int len);
	void AddMsgHeadLength(BYTE *pbuf,int len);
	void AddMsgHeadcmdID(BYTE *pbuf,int cmdID);
};

/////////////////////////////////////////////////////////////////////////////
//状态定义Command_status	错误代码	描述
#define E_SUCCESS	0X00000000	//成功

//{{AFX_INSERT_LOCATION}}
#endif // !defined(AFX_NOKIASOCK_H__7BAC9F1D_C0FE_406B_90F9_C32214152010__INCLUDED_)

⌨️ 快捷键说明

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