(1)FTP连接

运行FTP客户端后,首先是连接FTP服务器,需要输入FTP服务器的IP地址及用户名、密码以及端口号后点击连接按钮开始连接FTP服务器,连接流程图如下图所示。

点击“连接”按钮后,会调用com.oyp.ftp.FTPClientFrame类的linkButtonActionPerformed(ActionEvent evt)方法,其主要代码程序如下

  1. /**
  2. * 连接按钮的事件处理方法
  3. */
  4. private void linkButtonActionPerformed(java.awt.event.ActionEvent evt) {
  5. try {
  6. String server = serverTextField.getText(); // 获取服务器地址
  7. if (server == null) {
  8. return;
  9. }
  10. String portStr = portTextField.getText(); // 获取端口号
  11. if (portStr == null) {
  12. portStr = "21";
  13. }
  14. int port = Integer.parseInt(portStr.trim());
  15. String userStr = userTextField.getText(); // 获取用户名
  16. userStr = userStr == null ? "" : userStr.trim();
  17. String passStr = PassField.getText(); // 获取密码
  18. passStr = passStr == null ? "" : passStr.trim();
  19. cutLinkButton.doClick();
  20. ftpClient = new FtpClient();
  21. ftpClient.openServer(server.trim(), port); // 连接服务器
  22. ftpClient.login(userStr, passStr); // 登录服务器
  23. ftpClient.binary(); // 使用二进制传输模式
  24. if (ftpClient.serverIsOpen()) { // 如果连接成功
  25. CUT_LINK_ACTION.setEnabled(true); // 设置断开按钮可用
  26. } else { // 否则
  27. CUT_LINK_ACTION.setEnabled(false); // 设置断开按钮不可用
  28. return; // 并结束事件处理
  29. }
  30. // 设置本地资源管理面板的FTP连接信息
  31. localPanel.setFtpClient(server, port, userStr, passStr);
  32. // 设置上传按钮可用
  33. localPanel.getActionMap().get("uploadAction").setEnabled(true);
  34. ftpPanel.setFtpClient(ftpClient);// 设置FTP资源管理面板的FTP连接信息
  35. // 设置下载按钮可用
  36. ftpPanel.getActionMap().get("downAction").setEnabled(true);
  37. ftpPanel.refreshCurrentFolder();// 刷新FTP资源管理面板的当前文件夹
  38. queuePanel.startQueue(); // 启动任务队列线程
  39. } catch (Exception ex) {
  40. ex.printStackTrace();
  41. }
  42. }

(2)FTP断开

点击“断开”按钮,会停止上传线程,停止下载线程,清空任务队列,清除FTP资源表格内容,清除本地面板的队列等,断开端连接模块流程图如图所示。

点击“断开”按钮,会触发com.oyp.ftp.CutLinkAction类的actionPerformed(ActionEvent e)方法,其主要代码如下

  1. /**
  2. * 处理断开按钮的按钮动作事件的方法
  3. */
  4. @Override
  5. public void actionPerformed(ActionEvent e) {
  6. try {
  7. frame.ftpPanel.stopDownThread(); // 停止下载线程
  8. frame.localPanel.stopUploadThread(); // 停止上传线程
  9. frame.getFtpPanel().getQueue().clear(); // 清空任务队列
  10. frame.getFtpPanel().clearTable(); // 清除FTP资源表格内容
  11. frame.getLocalPanel().getQueue().clear(); // 清除本地面板的队列
  12. // 如果FTP连接对象存在,并且已经连接FTP服务器
  13. if (frame.ftpClient != null && frame.ftpClient.serverIsOpen()) {
  14. frame.ftpClient.sendServer("quit\r\n"); // 发送断开连接的FTP协议的命令
  15. frame.ftpClient.readServerResponse(); // 读取返回编码
  16. frame.ftpClient = null;
  17. }
  18. // 设置上传按钮不可用
  19. frame.localPanel.getActionMap().get("uploadAction").setEnabled(
  20. false);
  21. // 设置下载按钮不可用
  22. frame.ftpPanel.getActionMap().get("downAction").setEnabled(false);
  23. setEnabled(false); // 设置本按钮(断开)不可用
  24. } catch (IOException e1) {
  25. e1.printStackTrace();
  26. }
  27. }

==================================================================================================

  作者:欧阳鹏  欢迎转载,与人分享是进步的源泉!

  转载请保留原文地址:http://blog.csdn.net/ouyang_peng

===================================================================================================

Java语言实现简单FTP软件------>连接管理模块的实现:主机与服务器之间的连接与关闭操作(八)的更多相关文章

  1. Java语言实现简单FTP软件------>本地文件管理模块的实现(九)

    首先看一下界面: 1.本地文件列表的显示功能 将本地的当前目录下所有文件显示出来,并显示文件的属性包括文件名.大小.日期.通过javax.swing.JTable()来显示具体的数据.更改当前文件目录 ...

  2. Java语言实现简单FTP软件------>远程文件管理模块的实现(十)

    首先看一下界面: 1.远程FTP服务器端的文件列表的显示 将远程的当前目录下所有文件显示出来,并显示文件的属性包括文件名.大小.日期.通过javax.swing.JTable()来显示具体的数据.更改 ...

  3. Java语言实现简单FTP软件------>源码放送(十三)

    Java语言实现简单FTP软件------>FTP协议分析(一) Java语言实现简单FTP软件------>FTP软件效果图预览之下载功能(二) Java语言实现简单FTP软件----- ...

  4. Java语言实现简单FTP软件------>上传下载管理模块的实现(十一)

    1.上传本地文件或文件夹到远程FTP服务器端的功能. 当用户在本地文件列表中选择想要上传的文件后,点击上传按钮,将本机上指定的文件上传到FTP服务器当前展现的目录,下图为上传子模块流程图 选择好要上传 ...

  5. Java语言实现简单FTP软件------>FTP软件主界面的实现(四)

    首先看一下该软件的整体代码框架                        1.首先介绍程序的主入口FTPMain.java,采用了一个漂亮的外观风格 package com.oyp.ftp; im ...

  6. Java语言实现简单FTP软件------>FTP协议分析(一)

    FTP(File Transfer Protocol)就是文件传输协议.通过FTP客户端从远程FTP服务器上拷贝文件到本地计算机称为下载,将本地计算机上的文件复制到远程FTP服务器上称为上传,上传和下 ...

  7. Java语言实现简单FTP软件------>FTP软件本地窗口的实现(五)

    1.首先看一下本地窗口的布局效果 2.看一下本地窗口实现的代码框架 2.本地窗口的具体实现代码LocalPanel.java package com.oyp.ftp.panel.local; impo ...

  8. Java语言实现简单FTP软件------>FTP软件远程窗口的实现(六)

    1.首先看一下远程窗口的布局效果 2.看一下本地窗口实现的代码框架 3.远程窗口主要实现代码FtpPanel.java package com.oyp.ftp.panel.ftp; import ja ...

  9. Java语言实现简单FTP软件------>辅助功能模块FTP站点管理的实现(十二)

    1.FTP站点管理 点击"FTP站点管理"按钮,弹出对话框"FTP站点管理",如下图 1) 连接站点 在FTP站点管理面板上选好要连接的站点,点击"连 ...

随机推荐

  1. EffectiveJava(4)通过私有构造器强化不可实例化的能力

    通过私有构造器强化不可实例化的能力 原理:只有当类不包含显式的构造器时,编译器才会生成缺省的构造器,因此只要让这个类包含私有构造器,他就不能被实例化 这种方式下,子类没有可访问的超类构造器可调用 // ...

  2. eclipse黄色警告(finally block does not complete normally) ,不建议在finally中使用return语句

    在eclipse中编写例如以下的代码,eclipse会给出黄色告警:finally block does not complete normally. public class Test { publ ...

  3. 关于web后门权限防删的一个新思路

    见土司有一帖子 具体看下面连接 https://www.t00ls.net/thread-26444-1-2.html 这是php的 其实IIS也有类似的 这是MSF生成的一个ASPX执行shellc ...

  4. 【Java】各种软件安装与环境配置的失败

    又来到了java的世界,看了一段时间的视频.感觉太空虚,便从网上找到一个教程.想做几个demo试试,少不了的前期准备:Java开发环境配置,Eclipse JSP/Servlet 环境搭建等.     ...

  5. swift -NavigationController,代理传值

    // // ViewController.swift // NavigationController // import UIKit import Foundation class ViewContr ...

  6. 【Excle数据透视表】如何水平并排显示报表筛选区域的字段

    原始效果 目标效果 解决方案 设置数据透视表"在报表区域筛选显示字段"为"水平并排" 步骤 方法① 单击数据透视表任意单元格→数据透视表工具→分析→选项→布局和 ...

  7. src-resolve: 无法将名称 'extension' 解析为 'element declaration' 组件。

    activiti流程部署时,出现“src-resolve: 无法将名称 'extension' 解析为 'element declaration' 组件.”错误. 出错原因:项目所在路径中有中文.

  8. NHibernate利用Mindscape.NHibernateModelDesigner实现数据库与实体之间的转换及操作

    环境: &nbsp&nbspVisual Studio 2010 一.Mindscape.NhibernateModelDesigner安装 &nbsp&nbsp在打开 ...

  9. 安装pydot及importError解决办法

    安装pydot: 需要先安装graphviz和pyparsing. 安装pydot过程曾出现“import error” 错误,主要是版本不兼容的问题.之后自己apt-get upgrade了一下,问 ...

  10. [译] 回调地狱——JavaScript异步编程指南

    原文:Callback Hell 什么是 “回调地狱”? 在 JavaScript 中,我们经常通过回调来实现异步逻辑,一旦嵌套层级多了,代码结构就容易变得很不直观,最后看起来像这样: fs.read ...