📄 拆包组包部分.txt
字号:
/**********************************************************************
程序名: pack_beps.ec 拆包组包部分
**********************************************************************/
//#include "pack.h"
#include "bepspack.h"
#include "pack_tcp.h"
$include "pack_beps.h" ;
$include "trad_xezf.h" ;
$include "trad.h" ;
extern int SysFlag;
#define TradCode_p 57
#define Debug
int Chan_Pack_Beps()
{
char tmpvar[9] ;
char tmpcode[5] ;
char tmplsh[21] ;
$char filename[101];
memset(filename,0x00,sizeof(filename));
strcpy(mn.mnbz,"XEZF");
if( get_mncs(&mn) )
{
plink_log("get_mncs()错误,%s-%d",TRACE) ;
return 1 ;
}
bzero(&xe_tmp,sizeof(struct XeTmpStruct) ) ;
ldchar(mn.mnczy,strlen(mn.mnczy),mn.mnczy) ;
strcpy(xe_tmp.czy,mn.mnczy);
ldchar(mn.mnfhy,strlen(mn.mnfhy),mn.mnfhy) ;
strcpy(xe_tmp.fhy,mn.mnfhy);
ldchar(mn.mnsqr,strlen(mn.mnsqr),mn.mnsqr) ;
strcpy(xe_tmp.dyy,mn.mnsqr) ;
ldchar(mn.mnwdh,strlen(mn.mnwdh),mn.mnwdh) ;
strcpy(xe_tmp.jyjgh,mn.mnwdh);
ldchar(mn.mnzdh,strlen(mn.mnzdh),mn.mnzdh) ;
strcpy(xe_tmp.ttyno,mn.mnzdh) ;
/*
bzero(tmplsh,sizeof(tmplsh)) ;
get_sys_seq(tmplsh);
xe_tmp.wdlsh=atoi(tmplsh) ;
#ifdef Debug
plink_log("xe_tmp.wdlsh=%d,%s-%d",xe_tmp.wdlsh,TRACE) ;
#endif
*/
bzero(tmpvar,sizeof(tmpvar)) ;
if( !strncmp((char*)BePack+PHeadB_p,"{P:",3) || !strncmp((char*)BePack+P
HeadB_p,"{F:",3) )
{
memmove(tmpvar,"PKG",3) ;
memmove(tmpvar+3,BePack+TradCode_p,3) ;
}
else
{
memmove(tmpvar,"CMT",3) ;
memmove(tmpvar+3,BePack+TradCode_p,3) ;
}
bzero(XePackno,sizeof(XePackno)) ;
bzero(xePackno,sizeof(xePackno)) ;
memmove(xePackno,tmpvar,6) ;
memmove(XePackno,tmpvar,6) ;
#ifdef Debug
plink_log("cmt/pkg No=%s,%s-%d",tmpvar,TRACE) ;
#endif
if( get_bepsjydyb(tmpvar,tmpcode) )
{
plink_log("get_bepsjydyb()错误,%s-%d",TRACE) ;
return 1 ;
}
bzero(TrCode,sizeof(TrCode)) ;
memmove(TrCode,tmpcode,4) ;
#ifdef Debug
plink_log("tmpvar=%s,TrCode=%s,%s-%d",tmpvar,TrCode,TRACE ) ;
#endif
if( get_xextcsbValue() )
{
plink_log("get_xextcsbValue()错误,%s-%d",TRACE) ;
return 1 ;
}
if( *g_BepsFile )
{
if(BepsMvFile(g_BepsFile,filename))
plink_log("BepsMvFile()错误,%s-%d",TRACE) ;
strpack(filename);
bzero(g_BepsFile,sizeof(g_BepsFile)) ;
//return 1 ;
}
else
{
BepsPack2File(BePack,PackLen) ;
//return 1 ;
}
/*判断主机是否是日终 add for cczf */
plink_log("tsbz=[%s]",XeXtcsbStruct.tsbz);
plink_log("flag=[%d]",CCZF_FLAG);
plink_log("BeingCczf=[%d]",BeingCczf);
if(XeXtcsbStruct.tsbz[8]=='1')
{
if(CCZF_FLAG == 1 && BeingCczf==0)
{
plink_log("*主机处于日终状态*,有需要存储转发的报文*");
$insert into beps_cczf values(:CCZF_WTRQ,:CCZF_BXH,:CCZF_FQQSHH,
:CCZF_FILENAME,:filename,'0');
if(sqlca.sqlcode)
{
plink_log("insert into beps_cczf err![%d],[%s-%d]",sqlca.sql
code,TRACE);
return 1;
}
SysFlag = 1; /*交易终止,不再往下执行,其他地方可能需要做?髡
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -