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

📄 拆包组包部分.txt

📁 教大家一个怎么拆包组包的ec程序
💻 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 + -