Big Fish

2004-12-16

FTP

前天花了一天的时间写FTP,从早上睡醒(大概9点)开始看RFC959,到第二天凌晨四点写完client。然后server实在是没时间写了,查实验的时候直接跟助教说:我client自己写的,server没时间了,拿的别人的程序。助教问了我一些流程上的东西发现我懂,也就没说什么了。

总的来说client写得还算比较快,当然我处理得也比较简单。写了个beginWith函数用来判断字符串是否以xxx开头,其实就是封装了一把strncasecmp;然后写了个waitOutput函数用来等待server的输出,直到指定的Reply Code出现。这里我一开始只能传入一个指定的Reply Code,结果就彻底不能处理异常和我客户端没有处理得命令,后来研究了一把strtok函数,改为用空格分隔的N个Reply Code,搞定。

然后就是弄了个pasvSocket函数来建立Passive链接,我没加Port模式支持,呵呵。然后实现了ls, get和put,再用getPassword函数处理了一把USER命令。

总的来说,一天写完client还算是比较快了,就是困死我了。。。

06:39:31 by fishy - Permanent Link

May the Force be with you. RAmen