pktcpcli.c
上传用户:sdtbys
上传日期:2009-12-06
资源大小:13k
文件大小:2k
源码类别:

并口编程

开发平台:

C/C++

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. char MsgLog[50]="/usr/zfmm/pk/pktcpcli.log";  /*程序信息*/
  4. #define Ret(M) memset(pk_out,' ',pk_out_len);strcpy(pk_out,M);
  5. #define pk_in_len   386
  6. #define pk_out_len  54
  7. int pk_tcpcli(char *pk_in,char *pk_out)
  8.   int sock; 
  9.   int ret; 
  10.   int time; 
  11.   char pkIP[30];
  12.   char pkPORT[10];
  13.   
  14.   memset(pkIP,0,sizeof(pkIP));
  15.   memset(pkPORT,0,sizeof(pkPORT));
  16.   
  17.   ShowId("pktcpcli");
  18.   GetEnv("/usr/zfmm/zfmm.cfg","[银河]IP",pkIP);
  19.   GetEnv("/usr/zfmm/zfmm.cfg","[银河]PORT",pkPORT);
  20.   /*取配置地址、端口*/
  21. #ifdef DEBUG
  22.  ShowMsg("pktcpcli open IP=%s PORT=%sn",pkIP,pkPORT);
  23. #endif
  24.   sock=sockClientOpen(pkIP,atoi(pkPORT)); /*连接*/
  25.   if (sock <0)
  26.   {
  27. #ifdef DEBUG
  28.     ShowMsg("不能正确连接支付密码前置机! error=%dn",sock);
  29. #endif
  30.     Ret("4011");
  31.     return (0);
  32.   }
  33.   
  34. #ifdef DEBUG
  35.  LooKChar(pk_in,strlen(pk_in));
  36.  LooKChar(pk_in,pk_in_len);
  37. #endif
  38.   ret=sockSend(sock,pk_in,strlen(pk_in));
  39.   if (ret <0)
  40.   {
  41. #ifdef DEBUG
  42.     ShowMsg("不能正确发送支付密码通讯包! error=%dn",ret);
  43. #endif
  44.     Ret("4012");
  45.     sockClose(sock);
  46.     return (0);
  47.   }
  48.  if (TimeOut(sock,70)) 
  49.  {
  50. #ifdef DEBUG
  51.    ShowMsg("接收支付密码前置机输出数据操时!n");
  52. #endif
  53.    Ret("4014");
  54.    sockClose(sock);
  55.    return(0);
  56.  }
  57.    
  58.  timeoutopen(70);
  59.  ret=sockRecv(sock,pk_out,pk_out_len);
  60.  time=timeoutclose();
  61.  if (time==0)
  62.  {
  63. #ifdef DEBUG
  64.    ShowMsg("接收支付密码前置机输出超时!n");
  65. #endif
  66.    Ret("4015");
  67.    sockClose(sock);
  68.    return (0);
  69.  }
  70.  if (ret <0)
  71.  {
  72. #ifdef DEBUG
  73.    ShowMsg("不能正确接收支付密码前置机输出! error=%dn",ret);
  74. #endif
  75.    Ret("4016");
  76.    sockClose(sock);
  77.    return (0);
  78.  }
  79.  
  80. #ifdef DEBUG
  81.  LooKChar(pk_out,pk_out_len);
  82. #endif
  83.  sockClose(sock);
  84.  return (0);
  85.    
  86. }