+ -
当前位置:首页 → 问答吧 → 请问:为什么自己编的程序不能传输文件成功

请问:为什么自己编的程序不能传输文件成功

时间:2011-07-06

来源:互联网

我的机器是XP,上面装IIS,并打开了FTP服务,我的虚拟机是CentOS 5.3的,
我在虚拟机上写了个程序,是模拟FTP的,请看:

  skc=socket(AF_INET,SOCK_STREAM,0); 
  //设置FTP服务器
  struct sockaddr_in adds;
  struct in_addr inp;
  bzero(&adds,sizeof(struct sockaddr_in));
  inet_aton("192.168.1.6",&inp); //服务器IP地址
  adds.sin_family=AF_INET;
  adds.sin_addr=inp;
  adds.sin_port=htons(21); //FTP端口
  //connect to server
  connect(skc,(struct sockaddr*)&adds,sizeof(struct sockaddr));//是成功的

  //发送用户名
  send(skc,user,strlen(user),0);//这里的chae user[]="USER usernamer\n";
  //发送口令
  send(skc,passwd,strlen(passwd),0);//char passwd[]="PASS passwd\n";
  //发送客户端端口号
  send(skc,cport,strlen(cport),0);//char cport[]="PORT 6235\n",端口号随便取的
  //设置ASCII模式
  send(skc,typestr,strlen(typestr),0);//char typestr[]="TYPE A\n";
  //从服务器上获得文件10.c 
  send(skc,cmds,strlen(cmds),0);//char cmds[]="RETR 10.c\n";
  //退出
  send(skc,qexit,strlen(qexit),0);//char qexit[]="QUIT\n";
并且每次发送完,我还用recv(skc,bufrecv,100,0)去取返回信息,每次都是成功的,
没有看到错误提示,可是就是没有取得文件,请问错在哪了?怎么改?

作者: leetow2003   发布时间: 2011-07-06

这个只是控制连接,用来传输指令
你还有创建数据连接,用来传输数据

作者: justkk   发布时间: 2011-07-07