新版本链接:再次400多行Python代码实现了一个FTP服务器
xxftp WIN32可执行文件及源代码下载地址:xxftp20110217
如有需要,可自行编译Linux版本!
笔记:
已经写了很多个FTPServer了。。。可以说是滚瓜烂熟,代码都可以背出来!
记得上次那个是用C#写的,不怎么好用,又吃内存,又吃CPU!
这次采用多线程写的xxftp,体积不到64KB,运行一段时间之后才占用几MB的内存,而且很好用!
对于像我这样做免费服务又节约资源的站长,适合的才是最好的!
每写一次FTPServer,较之前都有很大的,思路一次比一次清晰,代码一次比一次好看,功能一次比一次强大!
这次增加了OPTS,FEAT,EPSV,EPRT,MTDM等命令,详见源代码中的ftp.h。
这次的服务器模型跟之前写homeserver是不同的,这次不是很注重并发响应能力。之前的homeserver在启动的时候就初始化了足够的线程来等待用户请求,避免响应迟钝的现象。而xxftp服务器运行时候,启动一个守护线程用来回收超时或者已经结束的FTP连接,启动一个监听线程等待用户连接。当有连接请求时,创建一个connection对象和对应的线程去处理用户请求。
继续阅读