通信 ?close(sock)返回-1,为何?有源代码
以下在sco unix下正常,但移到VC6(window)下编译正常,运行则ret =close(sock)返回为-1; 是不是在vc6下要用其它方法关闭sock
以下是客户端程式
/*0-成功 -1连接失败 -2发送失败 -3接收失败 -4加密错 -5解密错*/
int ds_wdtoqz_cli(unsigned char *send_buf,unsigned char *recv_buf,char *hostname ,u_short port,int timeout,char *mkey,char *wkey)
{
int sock ;
int ret ;
sock = ds_socketClient(hostname, port, 1) ;
if (sock == 0) {
GClog_print(__FILE__,__LINE__,"ERROR hostname=[%s],port=[%d]",hostname,port);
return(-1);
}
ret = ds_send(sock,send_buf) ;
if(ret<=0)
{
GClog_print(__FILE__, __LINE__, "ERROR ds_send() ret=[%d]",ret);
close(sock) ;
return(-2) ;
}
ret = ds_recv(sock,recv_buf,timeout) ;
if(ret <= 0)
{
GClog_print(__FILE__, __LINE__,"ERROR ds_recv() ret=[%d]",ret);
close(sock) ;
return(-3) ;
}
ret = close(sock) ;
GClog_print(__FILE__, __LINE__, "close ret=[%d]",ret);
/*ret为什么会是-1*/
return(0) ;
}