用户名:
密 码: 记住
您当前的位置:首页 > 站长百科 > 服务器技术

FileZilla FTP服务器源代码分析(2)

时间:2015-01-18  来源:互联网  作者:佚名

    FileZilla FTP服务器源代码分析:FileZilla是一款免费而且开源的FTP工具。包括FileZilla Client,FileZilla Server两个版本。FileZilla Server只提供了windows系统下的版本,我们要将本地的网站网页文件上传到网站服务器,或从服务器下载网页文件,只需FileZilla Client客户端版本就可以了。FileZilla FTP服务器源代码分。在进一步分析代码之前,先复习一下FTP协议,下图是FTP的结构图。

 
    客户端和服务器是通过两个连接来进行通讯的:
    一个是控制连接,也就是传输些控制命令,客户端发出FTP命令,服务器给出应答,例如:USER,PASS命令等等。这个连接中,FTP服务器的端 口就是熟知的21端口,连接是由客户端发起的,例如:ftp 192.168.0.1。有一点注意,用户是通过“用户接口”来操作的,一般的用户接口是指cuteFTP这些FTP客户端,或者ftp.exe这种命令 行程序,用户在用户接口使用的是ftp命令,如ls, get, cd等,这些ftp命令并不是真正与FTP服务器交互的命令,这些ftp命令还需要由“用户协议解释器”翻译成真正的ftp协议命令,如USER, PASS,才能与服务器进行交互。
    一个是数据连接,即真正的文件传输是在这个连接上进行的。服务器端的数据连接端口是20,客户端的数据连接端口是随机生成的。数据连接只在传输文件 时存在,文件传完后,这个连接就断了,如果需要再次传送文件,会再次建立一个数据连接(客户端的端口是随机的,不一定是上次的那个)。数据连接的模式有两 种,一种是主动方式,一种是被动方式,两者的区别在于数据连接是由谁发起。
    我们来看一个典型的FTP交互过程,用的是windows的ftp.exe程序,先建立一个连接,然后ls看一下文件列表,用get命令下 载一个文件,最后quit关闭。下面-d选项可以显示交互的细节,注意-->开头的行是ftp客户端发给FTP服务器的请求,3个数字开头的行是服 务器的应答,如220, 331等开头的行:
    C:\>ftp -d localhost
    Connected to dell.
    220-FileZilla Server version 0.9.18 beta
    220-written by Tim Kosse (Tim.Kosse@gmx.de)
    220 Please visit http://sourceforge.net/projects/filezilla/
    User (dell:(none)): robert
    ---> USER robert
    331 Password required for robert
    Password:
    ---> PASS test
    230 Logged on
    ftp> ls
    ---> PORT 127,0,0,1,4,173
    200 Port command successful
    ---> NLST
    150 Opening data channel for directory list.
    Manual.txt
    226 Transfer OK
    ftp: 收到 175 字节,用时 0.00Seconds 175000.00Kbytes/sec.
    ftp> get Manual.txt
    ---> PORT 127,0,0,1,4,174
    200 Port command successful
    ---> RETR Manual.txt
    150 Opening data channel for file transfer.
    226 Transfer OK
    ftp: 收到 17319 字节,用时 0.09Seconds 192.43Kbytes/sec.
    ftp> quit
    ---> QUIT
    221 Goodbye
    C:\>

[1] [2] 下一页


    刚开始,客户端发出建立连接的请求:
    1.C:\>ftp -d localhost // 建立连接  2. 3.Connected to dell. // 连接已建立  4. 然后服务器发送欢迎信息,并要求输入用户名:
    1.220-FileZilla Server version 0.9.18 beta  2. 3.220-written by Tim Kosse (Tim.Kosse@gmx.de)  4. 5.220 Plea

12下一页
来顶一下
返回首页
返回首页
推荐资讯
【图文教程】dede织梦网站后台如何发表文章? 【图文教程】dede织梦网站后台如何对于新手站长可能不了解,dede织梦后台是如何发文章的。下面
2014站长圈十大事件:PR已死 移动算法兴起 2014站长圈十大事件:PR已死 移动算2014年即将过去,虽然站长圈相比过去几年稍显沉寂,但&ldquo
相关文章
    无相关信息
栏目更新
栏目热门