pktcpcli.c
上传用户:sdtbys
上传日期:2009-12-06
资源大小:13k
文件大小:2k
- #include <stdio.h>
- #include <stdlib.h>
- char MsgLog[50]="/usr/zfmm/pk/pktcpcli.log"; /*程序信息*/
- #define Ret(M) memset(pk_out,' ',pk_out_len);strcpy(pk_out,M);
- #define pk_in_len 386
- #define pk_out_len 54
- int pk_tcpcli(char *pk_in,char *pk_out)
- {
- int sock;
- int ret;
- int time;
- char pkIP[30];
- char pkPORT[10];
-
-
- memset(pkIP,0,sizeof(pkIP));
- memset(pkPORT,0,sizeof(pkPORT));
-
- ShowId("pktcpcli");
- GetEnv("/usr/zfmm/zfmm.cfg","[银河]IP",pkIP);
- GetEnv("/usr/zfmm/zfmm.cfg","[银河]PORT",pkPORT);
- /*取配置地址、端口*/
- #ifdef DEBUG
- ShowMsg("pktcpcli open IP=%s PORT=%sn",pkIP,pkPORT);
- #endif
- sock=sockClientOpen(pkIP,atoi(pkPORT)); /*连接*/
- if (sock <0)
- {
- #ifdef DEBUG
- ShowMsg("不能正确连接支付密码前置机! error=%dn",sock);
- #endif
- Ret("4011");
- return (0);
- }
-
- #ifdef DEBUG
- LooKChar(pk_in,strlen(pk_in));
- LooKChar(pk_in,pk_in_len);
- #endif
- ret=sockSend(sock,pk_in,strlen(pk_in));
- if (ret <0)
- {
- #ifdef DEBUG
- ShowMsg("不能正确发送支付密码通讯包! error=%dn",ret);
- #endif
- Ret("4012");
- sockClose(sock);
- return (0);
- }
- if (TimeOut(sock,70))
- {
- #ifdef DEBUG
- ShowMsg("接收支付密码前置机输出数据操时!n");
- #endif
- Ret("4014");
- 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("4015");
- sockClose(sock);
- return (0);
- }
- if (ret <0)
- {
- #ifdef DEBUG
- ShowMsg("不能正确接收支付密码前置机输出! error=%dn",ret);
- #endif
- Ret("4016");
- sockClose(sock);
- return (0);
- }
-
- #ifdef DEBUG
- LooKChar(pk_out,pk_out_len);
- #endif
- sockClose(sock);
- return (0);
-
- }