当前位置: 首页 > GNU/Linux系统 > 正文

FTP学习的一些笔记

FTP大约在2011年下半年接触的,这个笔记也是当时记录的,一晃差不多4年过去了,如今又有项目安排做这个,事是人非,冥冥之中又会有新意思么?
找出当年写的笔记,权当记念。

1、每个FTP命令(包括应答信息),以“\r\n”结尾。

2、当connect成功后,就可以读取FTP服务器的欢迎信息。如:

char tmp[100]; int ret; ret = Receive(tmp, sizeof(tmp), 10); tmp[ret] = '\0';

字符串形式:

220 Welcome to blah FTP service, I am Late Lee ^_^."\r\n"\0

3、PASV模式应答信息:

227 Entering Passive Mode (172,18,222,100,18,255)."\r\n"\0

其中18*256 + 255是数据端口号。

4、ACTIVE模式命令:
客户端发送:PORT 192,168,18,188,N,M
服务器返回:200 PORT Command successful.
其中客户端需要产生大于1024的端口NUM = N*256 + M

5、CWD CDUP 命令返回两条响应信息,要注意!–>正确说法是多行响应信息

250-Disk free space at this directory is 455,099,184 KB. 250 CWD command successful (在dos下ftp工具测试结果)

6、数据传输有两条通道,一为命令(21端口),另一为数据通道(由PASV命令返回结果得到端口号)。
需要进入数据传输的有以下命令:
上传:STO STOU APPE
下载:RETR LIST NLST
connet返回两次响应信息:

227 Entering Passive Mode (172,18,222,100,10,181). 150 Opening BINARY mode data connection for 1234.dat (RETR命令此处有文件大小信息) send/receive data

closesocket返回一次:

226 Transfer complete.

上面所述者均为另建一socket进行数据传输,每次完成需要关闭,即使这成为整体(create connect send/receive close)。

7、重命名:
RNFR
返回信息:
出错:550 foo.dat No such file or directory
成功:350 File or directory exists, ready for destination name.
RNTO
返回信息:
出错:503 Bad sequence of commands
成功:250 Rename successful

李迟 5.6半夜

近来经济拮据,如本文对阁下有帮助,可慷慨解囊赞助笔者以输出更多好文章。
[email protected] 或 微信fly_camel_fly 均可。感谢!
14373903313201                                  14373903313202

本文固定链接: http://www.latelee.org/using-gnu-linux/ftp-learning-note.html

如无特别说明,迟思堂工作室文章均为原创,转载请注明: FTP学习的一些笔记 | 迟思堂工作室

目前暂无评论

发表评论

*

快捷键:Ctrl+Enter