计算机网络课程设计报告(FTP客户端的设计与实现)

2026/4/23 23:35:48

FTP客户端的设计与实现

private JTextField password = new JTextField(); //密码 private JTextField status = new JTextField();//当前状态

private JButton connectButton=new JButton(\连接\连接按钮

private JButton closeButton=new JButton(\断开连接\断开连接按钮

private JPopupMenu popup = new JPopupMenu();;

private JMenuItem refresh = new JMenuItem(\刷新\右键弹出菜单 private JMenuItem delete = new JMenuItem(\删除\

private JMenuItem download = new JMenuItem(\下载\ private JMenuItem upload = new JMenuItem(\上传\ private JMenuItem rename = new JMenuItem(\重命名\private JMenuItem upDir = new JMenuItem(\上级目录\

private JMenuItem showLog = new JMenuItem(\显示日志信息\

final DefaultListModel m=new DefaultListModel(); //显示文件列表 JList fileList = new JList(m); JScrollPane fileScrollPane;

private Dimension faceSize = new Dimension(400, 600); //框架大小

public FTP() {

init();

createPopup(); //弹出菜单 time = new Date(); try {

write = new FileWriter(\

out = new PrintWriter(write,true); }

catch(IOException ioe) { ioe.printStackTrace(); }

status.setEditable(false);

this.add(status,BorderLayout.SOUTH); //下方

connectButton.addActionListener( new ActionListener() {

public void actionPerformed(ActionEvent e) {

connect();

第 8 页 共 27 页

FTP客户端的设计与实现

}

});

closeButton.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

close();

time = new Date();

out.println(time+\离开服务器:\

} });

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //添加框架的关闭事件处理

this.pack();

this.setSize(faceSize); //设置框架的大小

Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); this.setLocation( (int) (screenSize.width - faceSize.getWidth()) / 2,

(int) (screenSize.height - faceSize.getHeight()) / 2);

this.setResizable(false);

this.setTitle(\服务端\ //设置标题

setVisible(true);

this.addWindowListener( //关闭程序时的操作

new WindowAdapter() {

public void windowClosing(WindowEvent e) {

close();

System.exit(0); } } ); }

void init() {

Container contentPane = getContentPane(); //获取面板

第 9 页 共 27 页

FTP客户端的设计与实现

contentPane.setLayout(new BorderLayout()); //设置布局

JPanel up = new JPanel(); //设置面板上方控件布局 up.setLayout(new GridLayout(3,2)); url.setText(\port.setText(\

username.setText(\password.setText(\JPanel no1 = new JPanel(); no1.setLayout(new BorderLayout());

no1.add(new JLabel(\服务器:\no1.add(url,BorderLayout.CENTER);

JPanel no2 = new JPanel(); no2.setLayout(new BorderLayout());

no2.add(new JLabel(\端口号:\

no2.add(port,BorderLayout.CENTER);

JPanel no3 = new JPanel(); no3.setLayout(new BorderLayout());

no3.add(new JLabel(\用户名:\no3.add(username,BorderLayout.CENTER);

JPanel no4 = new JPanel(); no4.setLayout(new BorderLayout());

no4.add(new JLabel(\密码 :\no4.add(password,BorderLayout.CENTER); up.add(no1); up.add(no2); up.add(no3); up.add(no4);

up.add(connectButton); up.add(closeButton);

closeButton.setEnabled(false);

this.add(up,BorderLayout.NORTH); //上方 fileScrollPane = new JScrollPane(fileList,

JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);

fileScrollPane.setPreferredSize(new Dimension(300,400));

第 10 页 共 27 页

FTP客户端的设计与实现

}

this.add(fileScrollPane,BorderLayout.CENTER); //中部

3.2.2功能实现函数

使用SUN公司提供的FTP客户端类库。 主要包括4个类:

sun.net.TelnetInputStream sun.net.TelnetOutputStream sun.net.ftp.FtpClient

sun.net.ftp.FtpLoginException

编写FtpBean类实现业务逻辑,包含一个FtpClient类的对象ftpClient。包含的方法如下: (1) 建立连接

String connect(String dir, String hostname, int port, String username,String passwd) 使用 ftpClient = new FtpClient(hostname, port); ftpClient.login(username, passwd); (2) 获取文件名列表

List getFileNameList()

使用 InputStreamReader isr = null; BufferedReader br = null;

isr = new InputStreamReader(this.ftpClient.nameList(this.getDir())); br = new BufferedReader(isr); 获取输入流来得到目录中的文件信息 (3) 判断路径

boolean isDir(String line)

使用line.startsWith(\来判断

(4) 设置路径

boolean setPath(String path)

使用ftpClient.cd(path);实现

(5) 上传文件

boolean uploadFile(String localFile, String targetFileName)

使用 ftpClient.cd(path);实现

(5) 上传文件

第 11 页 共 27 页


计算机网络课程设计报告(FTP客户端的设计与实现).doc 将本文的Word文档下载到电脑
搜索更多关于: 计算机网络课程设计报告(FTP客户端的设计与实现) 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219