www.pudn.com > PK1111.rar > pktcpcli.c


#include  
#include  
 
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=%s\n",pkIP,pkPORT); 
#endif 
 
  sock=sockClientOpen(pkIP,atoi(pkPORT)); /*连接*/ 
  if (sock <0) 
  { 
#ifdef DEBUG 
    ShowMsg("不能正确连接支付密码前置机! error=%d\n",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=%d\n",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=%d\n",ret); 
#endif 
   Ret("4016"); 
   sockClose(sock); 
   return (0); 
 } 
  
#ifdef DEBUG 
 LooKChar(pk_out,pk_out_len); 
#endif 
 
 
 sockClose(sock); 
 return (0); 
    
}