?? lpackage.h
字號:
/*******************************************************************************
LPackage.h
組裝拆包類
================================================================================
Copyright (c) 2002 GameHigh Group.
Author: bigbencat
email: liguangyu@china.com
這一程序是自由軟件,你可以遵照自由軟件基金會出版的GNU 通用公共許可證條款來修改和
重新發布這一程序。或者用許可證的第二版,或者(根據你的選擇)用任何更新的版本。
發布這一程序的目的是希望它有用,但沒有任何擔保。甚至沒有適合特定目地的隱含的擔保。
更詳細的情況請參閱GNU通用公共許可證。
你應該已經和程序一起收到一份GNU通用公共許可證的副本。如果還沒有,寫信給:
The Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA02139, USA
或訪問 http://www.gnu.org
如果你在使用本軟件時有什么問題或建議,用以下地址可以與我們取得聯系:
http://gamehigh.51.net
gamehigh@hotmail.com
文件版本:
0.1.2
Build 021202
Date 2002-12-02函數
修改歷史:
2001-08-01
首次新建文件
2002-12-01
增加4個字符串
*******************************************************************************/
// LPackage.h: interface for the CLPackage class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_LPACKAGE_H__4E866910_82E8_40BD_BCBC_31C3B3AA6BF5__INCLUDED_)
#define AFX_LPACKAGE_H__4E866910_82E8_40BD_BCBC_31C3B3AA6BF5__INCLUDED_
#define PACK_BUF_SIZE 2048
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
//#include <memory.h>
//#include <string.h>
//#include <Winsock2.h>
/*#ifndef _WINSOCK2API_
#include <WinSock2.h>
#pragma comment(lib, "ws2_32.lib")
#endif*/
#include "..\common\defs2.h"
//建立一個專門用來拆解和組建象CMPP報文,SMPP報文包的函數
//BYTE == unsigned char
//WORD == unsigned short
//DWORD == unsigned long
//##ModelId=3E795F87020B
class CLPackage
{
public:
//##ModelId=3E795F870215
BOOL SetStringAndLongLen(char *szBuf);//先放入buf一個long的字符串長度,再放入字符串
//##ModelId=3E795F870220
BOOL SetStringAndShortLen(char *szBuf);//先放入buf一個short的字符串長度,再放入字符串
//##ModelId=3E795F87022A
BOOL SetStringAndByteLen(char *szBuf);//先放入buf一個byte的字符串長度,再放入字符串
//##ModelId=3E795F870233
BOOL GetStringByShortLen(char *szBuf, long lBufLen);//先取出一個short的字符串長度,再根據長度取出字符串,并防止緩沖超長
//##ModelId=3E795F87023D
BOOL GetStringByLongLen(char *szBuf, long lBufLen);//先取出一個long的字符串長度,再根據長度取出字符串,并防止緩沖超長
//##ModelId=3E795F870252
BOOL GetStringByByteLen(char* szBuf,long lBufLen);//先取出一個byte的字符串長度,再根據長度取出字符串,并防止緩沖超長
//##ModelId=3E795F87025B
short htons_my(short sTemp);
//##ModelId=3E795F870266
long htonl_my(long lTemp);
//##ModelId=3E795F870270
void Set(long lWordPos,long lHeadLen);
//##ModelId=3E795F87027A
long SetStr2(char *szData);
//##ModelId=3E795F870284
long MakeHead(long lCommand,unsigned long lSque);
//##ModelId=3E795F870299
long GetPackage(CLPackage &cPack);
//##ModelId=3E795F8702A2
long AddBuf(char* szData,long lLen);
//##ModelId=3E795F8702AD
long EndSetPackLen(long lLength=-1);
//##ModelId=3E795F8702B7
long SetStrByLen(char* szData,long lLength);
//##ModelId=3E795F8702CA
long GetLength();
//##ModelId=3E795F8702CB
char* GetBuf();
//##ModelId=3E795F8702D4
long SetStr(char* szData);
//##ModelId=3E795F8702DF
long SetInt(int iData);
//##ModelId=3E795F8702E9
long SetWord(unsigned short dData);
//##ModelId=3E795F8702F3
long SetDword(unsigned long dData);
//##ModelId=3E795F870307
long SetByte(unsigned char cByte);
//##ModelId=3E795F870309
long GetString(char *szOut,long lBufLen);
//##ModelId=3E795F87031B
long GetStrByLen(char* szOut,long lLen);
//##ModelId=3E795F87032E
unsigned char GetByte();
//##ModelId=3E795F87032F
int GetInt();
//##ModelId=3E795F870338
unsigned short GetWord();
//##ModelId=3E795F870339
unsigned long GetDword();
//##ModelId=3E795F87034C
long SetBuffer(char* szBuf,long lBufLength);
//##ModelId=3E795F87034F
void InitPack();
//##ModelId=3E795F870360
CLPackage();
//##ModelId=3E795F87036A
virtual ~CLPackage();
private:
//##ModelId=3E795F87036C
long PutVar(char* szData,long lLength);
//##ModelId=3E795F87037E
long GetVar(char* szPointer,long lLength);
//##ModelId=3E795F87039E
char m_szBuf[PACK_BUF_SIZE];//緩沖區
//##ModelId=3E795F8703A6
long m_lBufLen;
//##ModelId=3E795F8703B0
long lLenWordPos ;//設置報文中放長度的long的位置
//##ModelId=3E795F8703BA
long lPackHeadLen; //報文全長=PACK_HEAD_LEN + 報文中標記長度
};
#endif // !defined(AFX_LPACKAGE_H__4E866910_82E8_40BD_BCBC_31C3B3AA6BF5__INCLUDED_)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -