FTP学习的一些笔记

来源:互联网 发布:广告联盟知乎 编辑:程序博客网 时间:2024/04/30 07:19
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半夜
0 0
原创粉丝点击