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

📄 tpcall.c

📁 UNIX/LINUX平台下面SMS网管原代码
💻 C
字号:
#include <stdio.h>#include <string.h>#include "tpcall.h"int init_head( BANK_HEAD *ih){	memset( (char *)ih, '\0', sizeof( ih)) ;	get_curr_date( ih->date) ;	ih->ds[ 0] = '1' ;	ih->flg[ 0] = 'S' ;	strcpy( ih->serial, "01") ;	strcpy( ih->dn, "00") ;	ih->side[ 0] = 'T' ;	return( 0) ;}int tpcall( char *host, int port, int timeout, int app, TRADE_PACK *tp){	FILE *fp ;	char buf[ 2048 + 64 + 1], tmp[ 2048] ;	char flg ;	int offset ;	int ret, mgid, i ;	memset( buf, '\0', sizeof( buf)) ;	offset = 0 ;	memcpy( buf + offset, "|", 1) ;	offset += 1 ;	memcpy( buf + offset, tp->bk_h.date, 8) ;	offset += 8 ;	memcpy( buf + offset, tp->bk_h.ds, 1) ;	offset += 1 ;	memcpy( buf + offset, tp->bk_h.flg, 1) ;	offset += 1 ;	memcpy( buf + offset, tp->bk_h.serial, 2) ;	offset += 2 ;	memcpy( buf + offset, tp->bk_h.dn, 2) ;	offset += 2 ;	memcpy( buf + offset, tp->bk_h.side, 1) ;	offset += 1 ;	memcpy( buf + offset, tp->bk_h.zoneno, 5) ;	offset += 5 ;	memcpy( buf + offset, tp->bk_h.optcode, 4) ;	offset += 4 ;	memcpy( buf + offset, tp->bk_h.termno, 3) ;	offset += 3 ;	memcpy( buf + offset, tp->bk_h.agentid, 4) ;	offset += 4 ;	memcpy( buf + offset, tp->bk_h.retcode, 2) ;	offset += 2 ;	memcpy( buf + offset, tp->bk_h.id, 19) ;	offset += 19 ;	memcpy( buf + offset, tp->bk_h.remark, 7) ;	offset += 7 ;	memcpy( buf + offset, tp->bk_h.cflg, 1) ;	offset += 1 ;	memcpy( buf + offset, tp->bk_h.crc, 4) ;	offset += 4 ;	memcpy( buf + offset, tp->buf, tp->buflen) ;	offset += tp->buflen ;	flg = 'F' ;	for ( i=0; ;i++ ) {		if ( sl_tcpip( &mgid, &app, host, port, buf, &offset, flg, timeout) != 0 )			return( mgid) ;		if ( flg == 'C' ) break ; 		tp->buflen = offset - 64 - 1 ;		offset = 0 ;		offset += 1 ;		memcpy( tp->bk_h.date, buf + offset, 8) ;		offset += 8 ;		memcpy( tp->bk_h.ds, buf + offset, 1) ;		offset += 1 ;		memcpy( tp->bk_h.flg, buf + offset, 1) ;		offset += 1 ;		memcpy( tp->bk_h.serial, buf + offset, 2) ;		offset += 2 ;		memcpy( tp->bk_h.dn, buf + offset, 2) ;		offset += 2 ;		memcpy( tp->bk_h.side, buf + offset, 1) ;		offset += 1 ;		memcpy( tp->bk_h.zoneno, buf + offset, 5) ;		offset += 5 ;		memcpy( tp->bk_h.optcode, buf + offset, 4) ;		offset += 4 ;		memcpy( tp->bk_h.termno, buf + offset, 3) ;		offset += 3 ;		memcpy( tp->bk_h.agentid, buf + offset, 4) ;		offset += 4 ;		memcpy( tp->bk_h.retcode, buf + offset, 2) ;		offset += 2 ;		memcpy( tp->bk_h.id, buf + offset, 19) ;		offset += 19 ;		memcpy( tp->bk_h.remark, buf + offset, 7) ;		offset += 7 ;		memcpy( tp->bk_h.cflg, buf + offset, 1) ;		offset += 1 ;		memcpy( tp->bk_h.crc, buf + offset, 4) ;		offset += 4 ;		switch( tp->bk_h.flg[ 0] ) {		case 'S' : flg = 'C' ; 			memcpy( tp->buf, buf + offset, tp->buflen) ;			break ;		case 'F' : flg = 'M' ; 			memcpy( tp->buf, buf + offset, tp->buflen) ;			break ;		case 'M' : flg = 'M' ;			if ( (fp=fopen( tp->filename, "ab+")) == NULL ) {				unlink( tp->filename) ; break ;			}			memset( tmp, '\0', sizeof( tmp ) );			memcpy( tmp, buf + offset, tp->buflen);			fprintf( fp, "%s", tmp) ;			fclose( fp) ;			break ;		case 'L' : flg = 'C' ;			if ( (fp=fopen( tp->filename, "ab+")) == NULL ) {				unlink( tp->filename) ; break ;			}			memset( tmp, '\0', sizeof( tmp ) );			memcpy( tmp, buf + offset, tp->buflen);			fprintf( fp, "%s", tmp) ;			fclose( fp) ;			break ;		}	}	return( 0) ;}

⌨️ 快捷键说明

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