当前位置:  技术问答>linux和unix

(高分)谁写过linux下的ftp客户端(访问linux服务器),请帮帮忙!有代码也行!

    来源: 互联网  发布时间:2015-03-06

    本文导语:  这个程序中同时使用了PORT 和 PASV 但是每次到APPE命令的时候,就会报告: DATA CONNOT CONNECTTION 这是为什么?顺序应该是什么?? 如果谁有现成的代码,也好!万分感激! 这时我新工作的第一个任务,555~ #include  #include  ...



这个程序中同时使用了PORT 和 PASV

但是每次到APPE命令的时候,就会报告: DATA CONNOT CONNECTTION

这是为什么?顺序应该是什么??

如果谁有现成的代码,也好!万分感激!
这时我新工作的第一个任务,555~




#include 
#include 
#include 
#include 
#include 
#include 


/* strcpy(snd, "HELPrn");*/

/* strcpy(snd, "PWDrn");*/



void logintoftp();


char name[10], pass[10];

int sockfd;
int main(int argc, char *argv[])
{
  char sendln[1024], myftp[4048];
  
  int len,  i;
  struct sockaddr_in cli;
  struct in_addr in;
  struct hostent *sn;

if(argc  0){
     rcv[n] = 0;
     if(strchr(rcv, 'n') != NULL)
     break;
  }
  printf("user:rev=%sn",rcv);

  //send password CMD
  memset(rcv, '', 4096);
  printf("Password :33[1;33m %s33[0m n", pass);
  memset(snd, '', 1024);
  sprintf(snd, "PASS %srn", pass);
  write(sockfd, snd, strlen(snd));
  while((n=read(sockfd, rcv, sizeof(rcv))) > 0){
     rcv[n] = 0;
     if(strchr(rcv, 'n') != NULL)
     break;
 }
 printf("pass:rcv==%sn",rcv);

 //send type  CMD
memset(rcv, '', 4096);
memset(snd, '', 1024);
strcpy(snd, "TYPE Irn");
write(sockfd, snd, strlen(snd));
while((n=read(sockfd, rcv, sizeof(rcv))) > 0){
     rcv[n] = 0;
     if(strchr(rcv, 'n') != NULL)
     break;
}
printf("type:rcv==%sn",rcv);



//port ?????
memset(rcv, '', 4096);
memset(snd, '', 1024);
strcpy(snd, "PORT 172,16,197,13,13,36rn");
write(sockfd, snd, strlen(snd));
while((n=read(sockfd, rcv, sizeof(rcv))) > 0){
     rcv[n] = 0;
          if(strchr(rcv, 'n') != NULL)
       break;
}
printf("port:rcv==%sn",rcv);



//try append CMD
memset(rcv, '', 4096);
memset(snd, '', 1024);

strcpy(snd, "APPE aarn"); //append localFile and save as remoteFile
//(snd, "APPE %s %srn", localFile, remoteFile); //append localFile and save as remoteFile

write(sockfd, snd, strlen(snd));

//recv(sockfd, rcv, 1024 , 0);


while((n=read(sockfd, rcv, sizeof(rcv))) > 0){
     rcv[n] = 0;
          if(strchr(rcv, 'n') != NULL)
  {        
    printf("append:rcv==%sn",rcv);
continue;
  }

}


printf("append:rcv==%sn",rcv);

/*


memset(rcv, '', 4096);
memset(snd, '', 1024);
strcpy(snd, "PORT 192,168,1,26,10,2rn");
write(sockfd, snd, strlen(snd));
while((n=read(sockfd, rcv, sizeof(rcv))) > 0){
     rcv[n] = 0;
     if(strchr(rcv, 'n') != NULL)
     break;
}
printf("rcv==%sn",rcv);
memset(rcv, '', 4096);
memset(snd, '', 1024);
strcpy(snd, "STOR rasrn");
write(sockfd, snd, strlen(snd));
*/

/*
while((n=read(sockfd, rcv, sizeof(rcv))) > 0){
     rcv[n] = 0;
     if(strchr(rcv, 'n') != NULL)
     break;
}
printf("rcv==%sn",rcv);
*/
/*
while(result) {
    bytes = send(sockfd,buffer,len,0);
   if (bytes  0){
     rcv[n] = 0;
     if(strchr(rcv, 'n') != NULL)
     break;
}
printf("rcv==%sn",rcv);
*/
 
//free(temp);
//return;
}

     
/* strcpy(snd, "RETR testftp.crn");*/
        










|
太长了 :(

你看看 www.busybox.net 上
busybox里面有一个简单的tftp客户端
它自己介绍如下:

/* ------------------------------------------------------------------------- */
/* tftp.c                                                                    */
/*                                                                           */
/* A simple tftp client for busybox.                                         */
/* Tries to follow RFC1350.                                                  */
/* Only "octet" mode supported.                                              */
/* Optional blocksize negotiation (RFC2347 + RFC2348)                        */

|
cli.sin_port = htons(21);

好像FTP的通信端口应该是20(我是指数据),21只是个连接端口。
FTP跟其他服务有点不一样,以前做过,也遇到同样的问题,好像就是这么解决的。

    
 
 

您可能感兴趣的文章:

  • [高分求图]linux系统,开启后的截图。
  • Linux远程访问的问题,高分求教:)
  • 高分求购:linux和unix命令大全电子文档
  • 请问那里有SUSE LINUX 8.1下载,在此谢过!(令附有高分赠送)
  • 有谁知道linux操作系统察看cpu使用率的命令,回答正确给高分,急,在线等待!!!
  • 哪位大侠知道ssldump在linux下怎么用?高分相送,谢谢
  • 急急!!!高分求助,关于实现LINUX软件的使用限制问题
  • 高分求:LINUX下视频压缩编解码算法实现
  • 高分请教:如何在linux上建vpn的客户端!
  • 高分求助:那位大哥知道那点有LINUX的教程下载,小弟急需,先行谢过
  • Linux下无法启动apache 高分求救!在线等待
  • linux下的vi中的乱码问题(急急急,在线等待!!!!!!,解决问题给高分)
  • 高分求解:win2000访问linux
  • 高分请教linux 的卸载问题
  • linux 高分求救
  • 高分请教! 在不重新安装linux的情况下,怎样扩大linux的硬盘分区?
  • 请教:哪儿有比较好的linux下的翻译软件?英语不好,高分寻找.
  • 怎样远程登陆我的linux系统(redhat linux)呀?(高手指教,高分相送!!!urgent help)
  • Linux 入门问题:高分奉送
  • 高分问linux串口和windows通信问题
  • 问几个关于JSP的问题,各位帮帮忙(高分相送)
  • 一定高分给去!高手请来帮帮忙。
  • 高分求救!JNI与中文的问题!!请知道的朋友帮帮忙!!!
  • linux问题请高手帮帮忙!!!送高分
  • 想给高分的,可是我最高只能给24分?!请帮帮忙吧,我快愁死了!
  • x-win32(6.1)如何使用?各位高手帮帮忙!高分相送
  • 请各位帮帮忙,高分相赠
  • 各位老大帮帮忙。 答问题 送高分。。。。
  • [高分求救]Jbuilder7连接不上sqlserver,为什么,大家帮帮忙!
  • (高分请教)刚接到一个项目,请大家帮我看看我所认为的技术难点该如何解决?Andrew.老weidegong?.....帮帮忙
  • 弄了一天了!!!大家帮帮忙阿,高分!!!!
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • ###########谁有JMS的例子(发组播消息的)或者相关的经验,请进来帮帮我,一定送高分!!!
  • 各位老大,谁能帮帮我,一简单问题,高分!!
  • 高分求有关java学习的好站点,及经典的介绍javabean的书籍。各位大侠,帮帮我好么?一定给分!
  • 大家一定要帮帮我啊!!高分相送!!
  • 急,!!!高分给你,快帮帮兄弟吧,
  • 高分求助,请教关于在ARM Linux下启动goahead服务器的问题。很急,在线等待,希望各位大虾帮帮,万分感激
  • 唉,帮帮我吧,redhat8.0 Adsl上网(没网卡,也无需帐号的,高分相送)
  • 各位大侠:linux/unix下有什么双字节的字符类型及其一整套处理函数? 高分送出,请帮帮小弟!!!!!!
  • 高分求助高分求助高分求助高分求助高分求助高分求助
  • 谁参加过weblogic的证书考试,是否有经验可供参考?高分高分高高分
  • 哪里有JB6下载啊,高分相送,救命
  • 高分求救!我在uclinux上运行应用程序时出现内存分配错误,不知如何解决,解决者高分!!
  • 哪里去找中文的EJB文章?高分悬赏!
  • 有jsp的upload和download 代码么,高分相报!
  • (高分求助)请问,那里有软件开发的<设计文档>
  • 高分寻求jsp代码(网上调查系统,新闻发布系统)就这点分了
  • 高分求购做饼图、线形图的源吗?
  • 关于linu下的中文输入.(高分:300)
  • 一个简单的问题,高分求助!!!
  • 高分求购jbulider6得注册码,企业版本,个人版本都要
  • 请问哪儿有Solaris8的光盘映像文件下载???高分相赠!!!
  • 高分求“Ration Rose”&"JBuilder6.0"&"VisualCafe"
  • VJ的一个问题,高分求助,熟悉VJ得请进!
  • 急救:关于BLOB数据类型---在线等待,高分相送!
  • 求UNIXWARE7.11的原版下载,高分相赠,在线等待!!!
  • 关于java?高分相送!
  • 请问哪里可以下载IP地址段对应城市的信息?高分回报!
  • 高分送高手


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3