📄 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 + -