FTP client程序
来源:互联网 发布:c语言编程射击小游戏 编辑:程序博客网 时间:2024/05/22 08:08
目标:连接远程主机,通过FTP下载到本地,校验(CRC,MD5)
步骤:
1、远端主机送来相关参数及校验码。
2、与主机建立TCP连接。
3、FTP server 返回一个220响应。
4、发送用户名,成功则返回331。
ret = snprintf(session_tmp,sizeof(session_tmp),"USER %s/r/n",user.user_name);
5、 发送密码。
ret = snprintf(session_tmp,sizeof(session_tmp),"PASS %s/r/n",user.pass_word);
返回230
6、发送FEAT指令。
ret = snprintf(session_tmp,sizeof(session_tmp),"%s/r/n","FEAT");
根据不同的返回值使用不同的校验方式。
7、打开远程目录。
if(ftp_common_cmd(ftp_sock,cmd_line,"CWD","250") == 1)
8、设置为2进制传输。
if(ftp_common_cmd(ftp_sock," I","TYPE","200") == 1)
9、得到文件长度。
ret = snprintf(session_tmp,sizeof(session_tmp),"%s %s","SIZE",remote_filename);
if(ftp_common_cmd(ftp_sock_fd,session_tmp,"SIZE","213") == - 1)
得到的格式需要转换下才是文件的长度。
10、得到文件的时间
ret = snprintf(session_tmp,sizeof(session_tmp),"%s %s","MDTM",remote_filename);
if(ftp_common_cmd(ftp_sock_fd,session_tmp,"MDTM","213") == - 1)
11、send PASV command。
ret = snprintf(session_tmp,sizeof(session_tmp),"%s","PASV");
if(ftp_common_cmd(ftp_sock_fd,session_tmp,"PASV","227") == - 1)
12、又建立一个TCP连接???
13、创建一个本地的文件。
sprintf(data,"/%s/%s",Put_FileDir,remote_filename);
14、根据不同的校验方式校验文件。
15、断开连接。
- FTP client程序
- ftp client
- FTP Client
- ftp client
- ftp client
- Ftp Client(java)
- FTP Server/Client
- write FTP client
- Python 编写 FTP Client
- filezilla ftp client
- FTP Client enterLocalPassiveMode
- ftp client api
- FTP Client的实现
- FTP Client enterLocalPassiveMode
- ftp-client-1
- ftp-client-2
- FTP Client enterLocalPassiveMode
- FTP Client setRemoteVerificationEnabled()
- cscope使用
- 感叹贴
- linux下echo命令详解
- MIPS与ARM RISC的简单对比
- 使用wget下载整个网站或目录【转】
- FTP client程序
- Apache 2.0性能优化—MPM的选择与配置
- svn import 时出现类似 svn: Error converting entry in directory '/home/data/test/dev_test_com/include' to UTF-8 的解决方法
- 数据库连接字符串大全
- 回收站恢复
- 设定Sql Server2000定期自动备份数据库
- 系出名门Android(7) - 控件(View)之ZoomControls, Include, VideoView, WebView, RatingBar, Tab, Spinner, Chronometer, ScrollView
- WinForm窗体间传递数据(三)
- 解决windows xp sp2双任务栏的问题