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

📄 sgipclientsocket.h

📁 1、自己编写的遵循SGIP1.1协议的短信客户端程序。仅供测试、学习。 2、该程序只实现了SGIP1.1协议的一部分。
💻 H
字号:
//Author: lijinhu
#if !defined(AFX_SGIPCLIENTSOCKET_H__82C9A6E5_CDE9_4BE2_9EBE_7D84ECCA76FF__INCLUDED_)
#define AFX_SGIPCLIENTSOCKET_H__82C9A6E5_CDE9_4BE2_9EBE_7D84ECCA76FF__INCLUDED_

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

#include "Constants.h"
#include "Sgip.h"
class CSocketResource;

/////////////////////////////////////////////////////////////////////////////
// CSgipClientSocket command target

class CSgipClientSocket : public CAsyncSocket, public CSgip
{
// Attributes
public:
	HANDLE  m_hClientConnect;
	HANDLE  m_hClientBind;
	BOOL    m_bBinded;
protected:
//	CSocketResource * m_pManager;
	BOOL	m_bConnected;
	BOOL    m_bError;//error happen,must close itself!!!
	int     m_iUsedChannels;
	t_BUFFER_WAITRESP_DEF m_WRBuf[BF_MAX_NUM_WAIT_SUBRESP];//每个连接都有一定数目的通道

// Operations
public:
	CSgipClientSocket();
	virtual ~CSgipClientSocket();

	BOOL FreeChannel(int iChannelNo , unsigned long ulSgipSerialNo);
	void SetError(BOOL bError);
    BOOL HaveError();
	BOOL IsConnected();
	BOOL IsBinded();
	int  GetChannel();
	int  GetUsedChannels();
//	void SetManager(CSocketResource *pManager);

	//Overrieds
//	BOOL Create();
	void Close();
	BOOL Connect( LPCTSTR lpszHostAddress, UINT nHostPort );

	int BindToGageway();	//执行BIND操作
	void Unbind();			//执行UNBIND操作
protected:
	void OnBind_resp();		//处理BIND_RESP数据包
	void OnSubmit_resp();	//处理SUBMIT_RESP数据包
	void OnUnbind_resp();	//处理UNBIND_RESP数据包
	void OnDeliver_resp();  //处理DELIVER_RESP数据包
public:
	int SubmitPDU(unsigned long ulSgipSerialNo,unsigned long ulSgipSerialTime,CString strChargeNum,int iUserCount,CString strUserNum,CString strContent,CString strExpireTime,CString strScheduleTime,int iReportFlag,int iMsgCoding);
	int DeliverPDU(unsigned long ulSgipSerialNo,unsigned long ulSgipSerialTime,CString strUserNum,CString strContent,int iMsgCoding);
	int GetSocketNo();
	BOOL SetSocketNo(int iSocketNo);
	unsigned long GetChannelSerialNo(int iChannelNo);
	BOOL SetChannelCmdBufNo(int iChannelNo,int iCmdBufNo);
	int GetChannelSubmitStatus(int iChannelNo);
	HANDLE* GethSubmit(int iChannelNo);
	BOOL ResetChannelSubmitEvent(int iChannelNo);
	BOOL SetChannelSubmitStatus(int iChannelNo,int iSubmitStatus);
	BOOL SetChannelStatus(int iChannelNo,int iStatus);
	BOOL SetChannelSerialNo(int iChannelNo,unsigned long ulSgipSerialNo);
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CSgipClientSocket)
	public:
	virtual void OnReceive(int nErrorCode);
	virtual void OnClose(int nErrorCode);
	virtual void OnConnect(int nErrorCode);
	//}}AFX_VIRTUAL

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

// Implementation
protected:
	int m_iSocketNo;
};

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

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

#endif // !defined(AFX_SGIPCLIENTSOCKET_H__82C9A6E5_CDE9_4BE2_9EBE_7D84ECCA76FF__INCLUDED_)

⌨️ 快捷键说明

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