免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3537 | 回复: 11
打印 上一主题 下一主题

急求代码实现 ftp client 的东西 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-11-28 13:03 |只看该作者 |倒序浏览
用c编一个小程序 类似ftp client的小程序  功能是从某个服务器上copy某些type的文件到本地host。
   类似:  ftpAp exe 2 ftp.cs.bris.ac.uk dstdir srcdir
   5 个参数。   其中 2 是指 子目录层数。最多支持到3。  1 为根目录。
   利用c 和 socket 实现。

  拜妥 各位了。
   我的邮箱。  lucy791025@163.com

论坛徽章:
0
2 [报告]
发表于 2003-11-28 13:09 |只看该作者

急求代码实现 ftp client 的东西

curl,wget带的一个库,有个很简单的ftp实现函数

论坛徽章:
0
3 [报告]
发表于 2003-11-28 13:11 |只看该作者

急求代码实现 ftp client 的东西


  1. 1 /*****************************************************************************
  2.   2  *                                  _   _ ____  _     
  3.   3  *  Project                     ___| | | |  _ \| |   
  4.   4  *                             / __| | | | |_) | |   
  5.   5  *                            | (__| |_| |  _ <| |___
  6.   6  *                             \___|\___/|_| \_\_____|
  7.   7  *
  8.   8  * $Id: ftpget.c,v 1.2 2002/01/08 13:05:44 bagder Exp $
  9.   9  */
  10. 10
  11. 11 #include <stdio.h>;
  12. 12
  13. 13 #include <curl/curl.h>;
  14. 14 #include <curl/types.h>;
  15. 15 #include <curl/easy.h>;
  16. 16
  17. 17 /*
  18. 18  * This is an example showing how to get a single file from an FTP server.
  19. 19  * It delays the actual destination file creation until the first write
  20. 20  * callback so that it won't create an empty file in case the remote file
  21. 21  * doesn't exist or something else fails.
  22. 22  */
  23. 23
  24. 24 struct FtpFile {
  25. 25   char *filename;
  26. 26   FILE *stream;
  27. 27 };
  28. 28
  29. 29 int my_fwrite(void *buffer, size_t size, size_t nmemb, void *stream)
  30. 30 {
  31. 31   struct FtpFile *out=(struct FtpFile *)stream;
  32. 32   if(out && !out->;stream) {
  33. 33     /* open file for writing */
  34. 34     out->;stream=fopen(out->;filename, "wb");
  35. 35     if(!out->;stream)
  36. 36       return -1; /* failure, can't open file to write */
  37. 37   }
  38. 38   return fwrite(buffer, size, nmemb, out->;stream);
  39. 39 }
  40. 40
  41. 41
  42. 42 int main(void)
  43. 43 {
  44. 44   CURL *curl;
  45. 45   CURLcode res;
  46. 46   struct FtpFile ftpfile={
  47. 47     "curl.tar.gz", /* name to store the file as if succesful */
  48. 48     NULL
  49. 49   };
  50. 50
  51. 51   curl_global_init(CURL_GLOBAL_DEFAULT);
  52. 52   
  53. 53   curl = curl_easy_init();
  54. 54   if(curl) {
  55. 55     /* Get curl 7.9.2 from sunet.se's FTP site: */
  56. 56     curl_easy_setopt(curl, CURLOPT_URL,
  57. 57                      "ftp://ftp.sunet.se/pub/www/utilities/curl/curl-7.9.2.tar.gz");
  58. 58     /* Define our callback to get called when there's data to be written */
  59. 59     curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, my_fwrite);
  60. 60     /* Set a pointer to our struct to pass to the callback */
  61. 61     curl_easy_setopt(curl, CURLOPT_FILE, &ftpfile);
  62. 62
  63. 63     /* Switch on full protocol/debug output */
  64. 64     curl_easy_setopt(curl, CURLOPT_VERBOSE, TRUE);
  65. 65
  66. 66     res = curl_easy_perform(curl);
  67. 67
  68. 68     /* always cleanup */
  69. 69     curl_easy_cleanup(curl);
  70. 70
  71. 71     if(CURLE_OK != res) {
  72. 72       /* we failed */
  73. 73       fprintf(stderr, "curl told us %d\n", res);
  74. 74     }
  75. 75   }
  76. 76
  77. 77   if(ftpfile.stream)
  78. 78     fclose(ftpfile.stream); /* close the local file */
  79. 79
  80. 80   curl_global_cleanup();
  81. 81
  82. 82   return 0;
  83. 83 }
  84. 84
复制代码

论坛徽章:
0
4 [报告]
发表于 2003-11-28 14:11 |只看该作者

急求代码实现 ftp client 的东西

谢谢 1qwer      了。
我是给别人求的。她的课程结业作业。
还有更详细、合题的没有。 谢谢了

论坛徽章:
0
5 [报告]
发表于 2003-11-28 16:32 |只看该作者

急求代码实现 ftp client 的东西

怎么没人理我 。帮帮忙啊。。。 d

论坛徽章:
0
6 [报告]
发表于 2003-11-29 09:44 |只看该作者

急求代码实现 ftp client 的东西

wwww
        cu 都没人能救救我啊!!!!!!!!!!!!!!

论坛徽章:
0
7 [报告]
发表于 2003-11-29 10:22 |只看该作者

急求代码实现 ftp client 的东西

1、SCO UNIX507 下面有FTPLIB库,用这个很容易实现!!、、
2、用基本socket的话,你可以采用被动接受的方式,建立一个socket进行connect,应答通过后,再建立一个socket进行listen,最后建立data socket进行接受数据!!我写过,代码也就是几百行,看看ftp协议自己写!!

论坛徽章:
0
8 [报告]
发表于 2003-11-29 10:24 |只看该作者

急求代码实现 ftp client 的东西

[quote]原帖由 "1qwer"]curl,wget带的一个库,有个很简单的ftp实现函数 [/quote 发表:


请问这是哪儿的库??那个unix版本呀,没用过!

论坛徽章:
0
9 [报告]
发表于 2003-11-29 10:24 |只看该作者

急求代码实现 ftp client 的东西

[quote]原帖由 "1qwer"]curl,wget带的一个库,有个很简单的ftp实现函数 [/quote 发表:

论坛徽章:
0
10 [报告]
发表于 2003-11-29 11:18 |只看该作者

急求代码实现 ftp client 的东西

原帖由 "myhoney" 发表:
1、SCO UNIX507 下面有FTPLIB库,用这个很容易实现!!、、
2、用基本socket的话,你可以采用被动接受的方式,建立一个socket进行connect,应答通过后,再建立一个socket进行listen,最后建立data socket进行接受数..........


      谢谢myhoney。 我是替别人求的。是她的结课作业。我自己是搞mac 图象处理的。没有条件看了。时间太急了。这样吧。我给你一个下载地址。里面是关于unix的 网路通讯的东西也包括ftp,但有些复杂 。我只要楼顶的简单实现。不知那些代码对你有用没。 你看能不能帮我实现一下。跪谢!!!

ftp://ftp.gnu.org/gnu/inetutils/inetutils-1.4.2.tar.gz
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP