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

编写ftp客户端程序遇到的问题

    来源: 互联网  发布时间:2016-02-04

    本文导语:  最近正在编写一个ftp客户端程序,遇到一些问题: 1:用linux ftp命令可以登录的ftp站点,在我的程序下却不能登录,老是说530 log incorrect;我的程序只能登陆自己在windows下建的一个ftp(我用的是虚拟机下linux),不知是...

最近正在编写一个ftp客户端程序,遇到一些问题:
1:用linux ftp命令可以登录的ftp站点,在我的程序下却不能登录,老是说530 log incorrect;我的程序只能登陆自己在windows下建的一个ftp(我用的是虚拟机下linux),不知是何原因,是发送的命令格式有问题么? 主要代码如下:
    #define LEN 1024
    char buf[LEN],buf1[LEN];
    int para1[50],para2[50];
    int nread;           
       ...         //连接等一些工作
  printf("User name");
    scanf("%s",para1);   //输入登录名
    sprintf(buf,"USER %s rn",para1);
    send(fd,buf,strlen(buf),0);  //fd是和ftp服务器相连的socket
    
    nread=recv(fd,buf,LEN,0);
    buf[nread]='';
    parse(buf);                 //提取出状态码,如331,230等,存放在buf中
  if(strcmp(buf,"331"))
    {
       printf("Password:");
       scanf("%s",para2);
       sprintf(buf,"PASS %s rn",para2);
       send(fd,buf,strlen(buf),0); 
    }
    nread=recv(fd,buf,LEN,0);
    buf[nread]='';
    printf("%s",buf);       
  //若是登录学校的ftp站点,这里输出530 login incorrect,但是直接在shell命令行里用ftp命令可以登录成功; 若是登录自己搭建的ftp,输出230,登陆成功,请问哪里出错了啊?谢谢

|
USER username rn
PASS password rn

应该是命令格式不正确在linux下换行符是n,没有r,但不知道它是不是兼容windows格式的rn.
去掉试下.


|
我把username和rn之间的空格去掉后就可以了,但把r去掉后不去空格会出现同样的问题。不过我查了下,linux下回车换行符确实只有一个字节'n'。
====
FTP协议要求rn的,与系统无关。
====
====
为什么只输出buf中的第一行,然后就输出username:_了,当输入用户名后,屏幕上又出现了buf中的剩余字符,即从第二行开始的字符。我不太理解这个啊? 有谁能帮助一下,谢谢。和缓存有关系么?
====
可能有关系,试试fflush

|
能把源码发个我看看吗,我也正在学习ftp开发,有问题大家可以一起讨论!
chen_weifeng@126.com

|
第一个是PASS %s rn不要有空格,第二个可能是你的缓冲区只定义了1024,而recv中用了4096,定义成一样看看!

    
 
 

您可能感兴趣的文章:

  • 客户端程序与容器打交道时客户端用什么程序编写?比如银行添单。
  • linux下用java编写邮箱客户端程序与在windows下有什么不同??
  • 如何编写EJB的客户端程序?
  • 求助:Linux下ftp客户端代码编写
  • 求助各位大侠:Linux下Ftp客户端程序编写
  • 如何参考freeradius client编写自己的客户端
  • 在客户端编写程序调用服务器端EJB中的方法该怎么写?
  • 客户端为java,服务器端为c编写的daemon,如何操作啊?
  • C++编写FTP客户端解析LIST命令获取目录不完整,求解。
  • linux 中用shell编写程序时遇到的一个问题,请高手指点!!!!
  • 编写FTP程序,遇到问题请大家帮忙!
  • 在编写驱动程序的时候,timer处理中,遇到了其他某timer处理例程以外的代码的执行。请指点,各位
  • 求助,关于vim编写汇编程序遇到的问题
  • 在编写mysql连接时遇到这个奇怪的connect问题,麻烦大家帮我看 :)
  • 求助:编写聊天服务器遇到的问题
  • 我编写了一段基于TCP通信的server程序,遇到了一个问题,急!
  • 【在线等】在编写多线程遇到了问题,哥们,帮个忙,急得不行了
  • [ftp服务器]编写ftp服务器遇到问题,请教大家一下。谢谢。
  • makefile编写遇到问题
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 编写 linux shell 有什么好的编写工具呢?
  • VB编写的DLL不能被JAVA调用,用C将VB编写的DLL包装起来,做成一个新的DLL;用C编写的DLL可以被JAVA调用,用JAVA再进行一层的包装,因为JAV
  • 用Qt3.1.4编写的程序,如何加入自己编写的另外一个动态库呀?诚恳指教!!
  • 如图 scsi <---> scsi controller <---> pci <---> cpu 如果我想对scsi编写驱动我该对哪个部分编写?
  • 用什么工具编写JSP,可以象用InterDev编写ASP一样方便快捷?
  • 编写程序如编写人生,有人和我的意见相同吗?
  • 请问用jsp编写程序,非要编写代码么?有没有什么象fontpage2000那样的工具,能够生成一些固定模板的工具?就是说不用全部都写的工具。望
  • 用jsp编写web程序到底和java serverlet编写web程序有和区别
  • socket中,从client端(用java编写的)传到server端(用c编写的)的字符串为何总多一个ASCII码为10的字符呀?
  • 如何用java编写一个NT平台下的标准服务?
  • 关于用vj编写sniffer一问。
  • Linux下如何编写脚本文件
  • java能不能编写单独运行的程序?
  • Linux有没有类似bat文件,如何编写。
  • 用JAVA编写COM组件
  • 关于版本和bug管理的rule(规则)的编写
  • 在windows下可以用Code::Blocks编写linux程序吗?
  • 函数互相调用时Makefile编写
  • AIX下如何编写批处理命令和计划任务
  • 怎么用JBuild编写java console程序


  • 站内导航:


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

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

    浙ICP备11055608号-3