ftp 客户端 ABOR 命令服务器 没响应
正在 写一个ftp客户端程序
在向服务器发送完数据后 向服务器发送ABOR命令 服务器没有响应
char* cmd= "ABOR \r\n ";
memset(buf,0,sizeof(buf));
sprintf(buf, "%s ",cmd);
if(write(ctrlSock,buf,strlen(buf)) <0)
{
cout < < "abort error " < <endl;
return -104;
}
//执行到这 程序就等待服务器相应,最后超时 为什么?求教了
ret=GetRetCode();
cout < < "ret= " < <ret < <endl;
------解决方案--------------------FTP 客户程序通常要同时读标准输入,控制链接和数个数据链接,所以传统的Unix FTP 客户程序使用 select/poll的方式+有限状态机的模型!
也可以用多线程的方式。
LZ的程序中
GetRetCode如果直接去read,此时如果运行ftpd的主机崩溃或网络中断,read就会一直阻塞!
建议看看open source ftp client 是如何实现的!