Java语言实现简单FTP软件------>连接管理模块的实现:主机与服务器之间的连接与关闭操作(八)
(1)FTP连接
运行FTP客户端后,首先是连接FTP服务器,需要输入FTP服务器的IP地址及用户名、密码以及端口号后点击连接按钮开始连接FTP服务器,连接流程图如下图所示。
点击“连接”按钮后,会调用com.oyp.ftp.FTPClientFrame类的linkButtonActionPerformed(ActionEvent evt)方法,其主要代码程序如下
- /**
- * 连接按钮的事件处理方法
- */
- private void linkButtonActionPerformed(java.awt.event.ActionEvent evt) {
- try {
- String server = serverTextField.getText(); // 获取服务器地址
- if (server == null) {
- return;
- }
- String portStr = portTextField.getText(); // 获取端口号
- if (portStr == null) {
- portStr = "21";
- }
- int port = Integer.parseInt(portStr.trim());
- String userStr = userTextField.getText(); // 获取用户名
- userStr = userStr == null ? "" : userStr.trim();
- String passStr = PassField.getText(); // 获取密码
- passStr = passStr == null ? "" : passStr.trim();
- cutLinkButton.doClick();
- ftpClient = new FtpClient();
- ftpClient.openServer(server.trim(), port); // 连接服务器
- ftpClient.login(userStr, passStr); // 登录服务器
- ftpClient.binary(); // 使用二进制传输模式
- if (ftpClient.serverIsOpen()) { // 如果连接成功
- CUT_LINK_ACTION.setEnabled(true); // 设置断开按钮可用
- } else { // 否则
- CUT_LINK_ACTION.setEnabled(false); // 设置断开按钮不可用
- return; // 并结束事件处理
- }
- // 设置本地资源管理面板的FTP连接信息
- localPanel.setFtpClient(server, port, userStr, passStr);
- // 设置上传按钮可用
- localPanel.getActionMap().get("uploadAction").setEnabled(true);
- ftpPanel.setFtpClient(ftpClient);// 设置FTP资源管理面板的FTP连接信息
- // 设置下载按钮可用
- ftpPanel.getActionMap().get("downAction").setEnabled(true);
- ftpPanel.refreshCurrentFolder();// 刷新FTP资源管理面板的当前文件夹
- queuePanel.startQueue(); // 启动任务队列线程
- } catch (Exception ex) {
- ex.printStackTrace();
- }
- }
(2)FTP断开
点击“断开”按钮,会停止上传线程,停止下载线程,清空任务队列,清除FTP资源表格内容,清除本地面板的队列等,断开端连接模块流程图如图所示。
点击“断开”按钮,会触发com.oyp.ftp.CutLinkAction类的actionPerformed(ActionEvent e)方法,其主要代码如下
- /**
- * 处理断开按钮的按钮动作事件的方法
- */
- @Override
- public void actionPerformed(ActionEvent e) {
- try {
- frame.ftpPanel.stopDownThread(); // 停止下载线程
- frame.localPanel.stopUploadThread(); // 停止上传线程
- frame.getFtpPanel().getQueue().clear(); // 清空任务队列
- frame.getFtpPanel().clearTable(); // 清除FTP资源表格内容
- frame.getLocalPanel().getQueue().clear(); // 清除本地面板的队列
- // 如果FTP连接对象存在,并且已经连接FTP服务器
- if (frame.ftpClient != null && frame.ftpClient.serverIsOpen()) {
- frame.ftpClient.sendServer("quit\r\n"); // 发送断开连接的FTP协议的命令
- frame.ftpClient.readServerResponse(); // 读取返回编码
- frame.ftpClient = null;
- }
- // 设置上传按钮不可用
- frame.localPanel.getActionMap().get("uploadAction").setEnabled(
- false);
- // 设置下载按钮不可用
- frame.ftpPanel.getActionMap().get("downAction").setEnabled(false);
- setEnabled(false); // 设置本按钮(断开)不可用
- } catch (IOException e1) {
- e1.printStackTrace();
- }
- }
==================================================================================================
作者:欧阳鹏 欢迎转载,与人分享是进步的源泉!
转载请保留原文地址:http://blog.csdn.net/ouyang_peng
===================================================================================================
Java语言实现简单FTP软件------>连接管理模块的实现:主机与服务器之间的连接与关闭操作(八)的更多相关文章
- Java语言实现简单FTP软件------>本地文件管理模块的实现(九)
首先看一下界面: 1.本地文件列表的显示功能 将本地的当前目录下所有文件显示出来,并显示文件的属性包括文件名.大小.日期.通过javax.swing.JTable()来显示具体的数据.更改当前文件目录 ...
- Java语言实现简单FTP软件------>远程文件管理模块的实现(十)
首先看一下界面: 1.远程FTP服务器端的文件列表的显示 将远程的当前目录下所有文件显示出来,并显示文件的属性包括文件名.大小.日期.通过javax.swing.JTable()来显示具体的数据.更改 ...
- Java语言实现简单FTP软件------>源码放送(十三)
Java语言实现简单FTP软件------>FTP协议分析(一) Java语言实现简单FTP软件------>FTP软件效果图预览之下载功能(二) Java语言实现简单FTP软件----- ...
- Java语言实现简单FTP软件------>上传下载管理模块的实现(十一)
1.上传本地文件或文件夹到远程FTP服务器端的功能. 当用户在本地文件列表中选择想要上传的文件后,点击上传按钮,将本机上指定的文件上传到FTP服务器当前展现的目录,下图为上传子模块流程图 选择好要上传 ...
- Java语言实现简单FTP软件------>FTP软件主界面的实现(四)
首先看一下该软件的整体代码框架 1.首先介绍程序的主入口FTPMain.java,采用了一个漂亮的外观风格 package com.oyp.ftp; im ...
- Java语言实现简单FTP软件------>FTP协议分析(一)
FTP(File Transfer Protocol)就是文件传输协议.通过FTP客户端从远程FTP服务器上拷贝文件到本地计算机称为下载,将本地计算机上的文件复制到远程FTP服务器上称为上传,上传和下 ...
- Java语言实现简单FTP软件------>FTP软件本地窗口的实现(五)
1.首先看一下本地窗口的布局效果 2.看一下本地窗口实现的代码框架 2.本地窗口的具体实现代码LocalPanel.java package com.oyp.ftp.panel.local; impo ...
- Java语言实现简单FTP软件------>FTP软件远程窗口的实现(六)
1.首先看一下远程窗口的布局效果 2.看一下本地窗口实现的代码框架 3.远程窗口主要实现代码FtpPanel.java package com.oyp.ftp.panel.ftp; import ja ...
- Java语言实现简单FTP软件------>辅助功能模块FTP站点管理的实现(十二)
1.FTP站点管理 点击"FTP站点管理"按钮,弹出对话框"FTP站点管理",如下图 1) 连接站点 在FTP站点管理面板上选好要连接的站点,点击"连 ...
随机推荐
- EffectiveJava(4)通过私有构造器强化不可实例化的能力
通过私有构造器强化不可实例化的能力 原理:只有当类不包含显式的构造器时,编译器才会生成缺省的构造器,因此只要让这个类包含私有构造器,他就不能被实例化 这种方式下,子类没有可访问的超类构造器可调用 // ...
- eclipse黄色警告(finally block does not complete normally) ,不建议在finally中使用return语句
在eclipse中编写例如以下的代码,eclipse会给出黄色告警:finally block does not complete normally. public class Test { publ ...
- 关于web后门权限防删的一个新思路
见土司有一帖子 具体看下面连接 https://www.t00ls.net/thread-26444-1-2.html 这是php的 其实IIS也有类似的 这是MSF生成的一个ASPX执行shellc ...
- 【Java】各种软件安装与环境配置的失败
又来到了java的世界,看了一段时间的视频.感觉太空虚,便从网上找到一个教程.想做几个demo试试,少不了的前期准备:Java开发环境配置,Eclipse JSP/Servlet 环境搭建等. ...
- swift -NavigationController,代理传值
// // ViewController.swift // NavigationController // import UIKit import Foundation class ViewContr ...
- 【Excle数据透视表】如何水平并排显示报表筛选区域的字段
原始效果 目标效果 解决方案 设置数据透视表"在报表区域筛选显示字段"为"水平并排" 步骤 方法① 单击数据透视表任意单元格→数据透视表工具→分析→选项→布局和 ...
- src-resolve: 无法将名称 'extension' 解析为 'element declaration' 组件。
activiti流程部署时,出现“src-resolve: 无法将名称 'extension' 解析为 'element declaration' 组件.”错误. 出错原因:项目所在路径中有中文.
- NHibernate利用Mindscape.NHibernateModelDesigner实现数据库与实体之间的转换及操作
环境:   Visual Studio 2010 一.Mindscape.NhibernateModelDesigner安装   在打开 ...
- 安装pydot及importError解决办法
安装pydot: 需要先安装graphviz和pyparsing. 安装pydot过程曾出现“import error” 错误,主要是版本不兼容的问题.之后自己apt-get upgrade了一下,问 ...
- [译] 回调地狱——JavaScript异步编程指南
原文:Callback Hell 什么是 “回调地狱”? 在 JavaScript 中,我们经常通过回调来实现异步逻辑,一旦嵌套层级多了,代码结构就容易变得很不直观,最后看起来像这样: fs.read ...