www.pudn.com > PK1111.rar > cxtcpcli.c
#include#include #define Ret(M) memset(pk_out,' ',pk_out_len);strcpy(pk_out,M); #define pk_in_len 386 #define pk_out_len 8 int zhcx_tcpcli(char *pk_in,char *pk_out) { int sock; int ret; int time; char pkIP[30]; char pkPORT[10]; int count; int len; int i; char out[79]; FILE *fp; char filename[20]; memset(pkIP,0,sizeof(pkIP)); memset(pkPORT,0,sizeof(pkPORT)); memset(filename,0,20); ShowId("cxtcpcli:zhcx"); GetEnv("/usr/zfmm/zfmm.cfg","[银河]IP",pkIP); GetEnv("/usr/zfmm/zfmm.cfg","[银河]PORT",pkPORT); /*取配置地址、端口*/ #ifdef DEBUG ShowMsg("pktcpcli open IP=%s PORT=%s\n",pkIP,pkPORT); #endif sock=sockClientOpen(pkIP,atoi(pkPORT)); /*连接*/ if (sock <0) { #ifdef DEBUG ShowMsg("不能正确连接支付密码前置机! error=%d\n",sock); #endif Ret("00004011"); return (0); } #ifdef DEBUG LooKChar(pk_in,strlen(pk_in)); #endif ret=sockSend(sock,pk_in,strlen(pk_in)); if (ret <0) { #ifdef DEBUG ShowMsg("不能正确发送支付密码通讯包! error=%d\n",ret); #endif Ret("00004012"); sockClose(sock); return (0); } if (TimeOut(sock,70)) { #ifdef DEBUG ShowMsg("接收支付密码前置机输出数据操时!\n"); #endif Ret("00004014"); sockClose(sock); return(0); } timeoutopen(70); ret=sockRecv(sock,pk_out,pk_out_len); time=timeoutclose(); if (time==0) { #ifdef DEBUG ShowMsg("接收支付密码前置机输出超时!\n"); #endif Ret("00004015"); sockClose(sock); return (0); } if (ret <0) { #ifdef DEBUG ShowMsg("不能正确接收支付密码前置机输出! error=%d\n",ret); #endif Ret("00004016"); sockClose(sock); return (0); } #ifdef DEBUG LooKChar(pk_out,pk_out_len); #endif /****************************/ count=(pk_out[0]-'0')*1000+(pk_out[1]-'0')*100+(pk_out[2]-'0')*10+(pk_out[3]-'0'); /*fprintf(stderr,"count=%d\n",count);*/ if (count==0) return (0); len=79; strcat(filename,"/tmp/zhcx"); strcat(filename,&pk_in[382]); fp=fopen(filename,"w"); if (fp==NULL) return; for(i=0;i