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

📄 main_0210.ec

📁 证券交易系统
💻 EC
字号:
#include "../incl/bank.h"#include <sys/time.h>#include "../incl/lu62.h"#define    ASCII           "IBM-eucCN"      /* ASCII code page               **/#define    EBCDIC          "IBM-935"        /* EBCDIC (Host) code page       **/#define    A2E             1                /* translate ASCII to EBCDIC     **/#define    E2A             2                /* translate EBCDIC to ASCII     **/#define    HEADLEN         7#define    MAX_WORKERS     50#define    MAX_COMMENT     50#define    MAX_BUFFERSIZE  1024static  void  toolong1 ();jmp_buf    oldenv1;extern WORKER     *wk;extern int        htime_out1;extern $char stockdb1[20];SEND_NET_0210   send_net_0210;RECV_NET_0210   recv_net_0210;int     net_tohost_0210(sockfd,rcv_data_package,snd_data_package)int     sockfd;char    *rcv_data_package;char    *snd_data_package;{        int    i,flag,j,k,n;        char   *tmp;        char   manager_id[10];        char    comment[10][80], buf[100];        FILE    *fp;        WORKER  wks[ MAX_WORKERS ];        char    duig_0210_buff[1024];        $connect to $stockdb1;        if ( sqlca.sqlcode ) {             WriteLog ( LOGFILE,"Open database stock err![%d]\n",sqlca.sqlcode );             strcpy ( send_net.retcode,"8999");             strcpy ( send_net.errmsg,"数据库开启错误");             return( -1 );        }        EXEC SQL UPDATE    t_worker_sign                    SET    on_off = "1";        if(sqlca.sqlcode)        {             WriteLog ( LOGFILE,"Update database stock err![%d]\n",sqlca.sqlcode );	     	 $disconnect current;             return( -1 );        }        $disconnect current;        if ( sqlca.sqlcode )        {             WriteLog ( LOGFILE, "Close database stock err![%d]\n",sqlca.sqlcode );             strcpy ( send_net.retcode,"8999");             strcpy ( send_net.errmsg,"数据库关闭错误");             return( -1 );        }        wk = NULL;        tmp = rcv_data_package;         WriteLog(LOGFILE,"********签到主处理开始*************");        WriteLog(LOGFILE,"接收数据:\n[%s]",rcv_data_package);        i = unpknet_stock_0210(rcv_data_package,duig_0210_buff);                    WriteLog(LOGFILE,"i=%d\n",i);        if(i == - 20)        {	       strcpy(snd_data_package,duig_0210_buff);	       printf("对公数据:[%s]\n",snd_data_package);               return(0);	}        if (i<0)  {            WriteLog(LOGFILE,"unpknet_stock  err!");            strcpy ( send_net_0210.retcode,"8999");            strcpy ( send_net_0210.errmsg,"解包错误");            pktonet_stock_0210(snd_data_package);                    return( 0 );        }        fp = fopen( (char *)getfname( WORKDIR, "/etc/ntbkhold"), "r" );        if ( fp == NULL ) {             WriteLog( LOGFILE,"ntbkhold not found! \n" );             return( -1 );        }        i = j = n = 0;        while( i< MAX_WORKERS  &&  j< MAX_COMMENT                              &&  fgets( buf, 80, fp ) != NULL ) {            if ( buf[ 0 ] == '#' || buf[ 0 ] == '\n' ) {                 strcpy( comment[j++], buf );                 continue;                                  /* 注释行空行 */            }            sscanf(  buf, "%s%s%s%s%s%s%s\n",                     wks[ i ].manager_id,       wks[ i ].worker_4,                     wks[ i ].worker_5,       wks[ i ].passwd,                     wks[ i ].rank,              wks[ i ].note,                     wks[ i ].active );            if ( signon( wks[i] ) == 0 ) {                 wks[ i ].active[ 0 ] = '1';                 n++;                 WriteLog(LOGFILE,"第[%d]个签到成功!",i);            }            else            {                 wks[ i ].active[ 0 ] = '0';                 WriteLog(LOGFILE,"第[%d]个签到失败!",i);            }            i++;        }        fclose( fp );        if( n == 0 )         {            WriteLog(LOGFILE,"柜员签到失败!");            strcpy ( send_net_0210.retcode,"8999");            strcpy ( send_net_0210.errmsg,"柜员签到失败");        }        else        {            WriteLog(LOGFILE,"柜员签到成功!");            strcpy ( send_net_0210.retcode,"0000");            strcpy ( send_net_0210.errmsg,"柜员签到成功");            worker_on(&wk);        }        pktonet_stock_0210(snd_data_package);        WriteLog(LOGFILE,"********签到主处理结束*************\n");                return(0);}static  void  toolong1 (){        htime_out1 = 1;        alarm ( 0 );        signal ( SIGALRM, SIG_IGN );        longjmp( oldenv1, 1 );}signon( wk )WORKER  wk;{       int          sendlen, recvlen, retcode;       char         sendstr[512], recvstr[512], date[10];       struct       head hd;       int          net_err,length, i;       char         sideinfo[9] = "SAVCICSB",str[100]  ;       char         recvasc[512];       strcpy(       hd.jym,       "0111");       strcpy(       hd.gzh,       wk.worker_4);       strcpy(       hd.sqjb,      wk.rank);       strcpy(       hd.bz,        wk.note);       hd.sqyh[0] = '\0';       hd.lsh = 0;       memcpy(       sendstr,       headstr(hd),       27 );        getdatea(date);       sendlen=Hmeg(sendstr,27,        wk.worker_5,     0x6f );       sendlen=Hmeg(sendstr,sendlen,   wk.passwd,       0x62 );       sendlen=Hmeg(sendstr,sendlen,   wk.worker_4,     0x59 );       sendlen=Hmeg(sendstr,sendlen,   "1",             0x52 );       sendlen=Hmeg(sendstr,sendlen,   date+2,          0x53 );       sendlen=Hmeg(sendstr,sendlen,   "1",             0x54 );       sendstr[sendlen++]=0xff;       retcode = LUFunction(LU_ALLOC, sideinfo, NULL, NULL);       WriteLog ( LOGFILE,"检查LU连路结束!");       if (retcode != 0)           {          strcpy ( send_net_0210.retcode, "8999" );          strcpy ( send_net_0210.errmsg,"系统错误");          WriteLog ( LOGFILE,"LU_ALLOC err:[%d]",retcode);          return(-1);       }       retcode = LUFunction(LU_SEND, &sendlen, sendstr);       WriteLog ( LOGFILE,"向9000发送数据结束!");            if (retcode != 0)       {           LUFunction(LU_FREE);           strcpy ( send_net_0210.retcode, "8999" );           strcpy ( send_net_0210.errmsg,"系统错误");           WriteLog ( LOGFILE,"LU_SEND err:[%d]",retcode);           return(-1);       }       length = MAX_BUFFERSIZE;       retcode = LUFunction(LU_RECEIVE, &length, recvstr);       WriteLog ( LOGFILE,"接收9000返回数据结束!");                          if (retcode != 0)        {           LUFunction(LU_FREE);           strcpy ( send_net_0210.retcode, "8999" );           strcpy ( send_net_0210.errmsg,"系统错误");           WriteLog ( LOGFILE,"LU_RECEIVE err:[%d]",retcode);           return(-1);       }       sendlen = 1;       strcpy(sendstr,"1");        retcode = LUFunction(LU_SENDTRUE, &sendlen, sendstr);       WriteLog ( LOGFILE,"向9000发送确认数据结束!");            if (retcode != 0)       {           LUFunction(LU_FREE);           strcpy ( send_net_0210.retcode, "8999" );           strcpy ( send_net_0210.errmsg,"系统错误");           WriteLog ( LOGFILE,"LU_SENDTRUE err:[%d]",retcode);           return(-1);       }       LUFunction(LU_FREE);/*   */	for( i = 0; i < 20; i ++ )	{		fprintf(stderr,  "%02x ", recvstr[i]);		}/*   */       if( recvstr[2] == 0x09 )       return( 0 );       else{	      gb_conv(0, recvstr+7, recvasc);              WriteLog ( LOGFILE,"recvstr:[%s]",recvasc);              return( -1 );       }}

⌨️ 快捷键说明

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