FTP 文件传输系统
一.项目概述
FTP 客户端设计的原理,FTP 使用两条 TCP 连接来完成文件传输:控制连接与数据连接。
控制连接用于传输控制,数据连接用于数据输送。在服务器启动后,服务器就会在端口 21
等待客户的连接请求,有用户需要传输文件时,客户与服务器的端口 21 建立一个控制连接,
用来传送客户的命令和服务器的应答,该连接一直保持到客户与服务器通信结束为止。当客
户发出数据传输命令时,服务器会主动与客户建立数据连接,并与其进行数据交换。
客户端用户并不直接处理控制连接上的 FTP 命令和 FTP 响应,而是由两个协议解释器进
行处理。用户接口为客户端用户提供一定形式的输入界面,接收用户的命令,将其转换成标
准的 FTP 命令,最终将控制连接上的 FTP 响应转换成用户可理解的方式。在客户与服务器
的整个连接期间,控制连接必须保持,而数据连接却可以根据请求动态地建立和关闭。在最
常用的流模式中,文件结束是用数据连接的关闭来表示的,换句话说,每传输一个文件或文
件列表,系统就会再建立一个新的数据连接。
二.设计一个 FTP 客户端,实现文件上传与下载功能
FTP 的客户端程序设计主要有四个部分:客户登录程序设计、FTP 服务器目录浏览程序
设计、FTP 服务器目录更新程序设计、上传和下载文件程序设计。而相应的操作流程为:
首先客户端程序先连接服务器,然后浏览或更新 FTP 服务器目录,选择文件进行下载或上
传,进行文件数据传输,最后断开连接。 我们要注意,在 下载文件和上传文件时,其数据
流向是不同的;而连接的断开也是由服务器程序执行的。
FTP 的客户端程序设计主要有四个部分:客户登录程序设计、FTP 服务器目录浏览程序
设计、FTP 服务器目录更新程序设计、上传和下载文件程序设计。而相应的操作流程为:
首先客户端程序先连接服务器,然后浏览或更新 FTP 服务器目录,选择文件进行下载或上
传,进行文件数据传输,最后断开连接。 我们要注意,在 下载文件和上传文件时,其数据
流向是不同的;而连接的断开也是由服务器程序执行的。
1.界面设计如下:
2.源码如下:
//引入相应包
import com.borland.jbcl.layout.*;
import java.beans.*;
import java.io.*;
import sun.net.TelnetInputStream;
import sun.net.ftp.*;
import java.lang.Object;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.JTextField;
import javax.swing.JCheckBox;
import javax.swing.tree.TreePath;