(1)FTP连接

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

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

/**

* 连接按钮的事件处理方法

*/

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(ActionEvente)方法,其主要代码如下

/**

* 处理断开按钮的按钮动作事件的方法

*/

@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();

}

}

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

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

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

分享到:

2013-08-13 19:43

浏览 300

评论

java关闭ftp 连接_Java语言实现简单FTP软件------gt;连接管理模块的实现:主机与服务器之间的连接与关闭操作(八) - 移动编程 - ITeye博客...相关推荐

  1. java实现ftp协议_Java语言实现简单FTP软件 FTP协议分析(1)

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

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

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

  3. java c++的区别_Java语言与C、C++之间的区别?

    小伙伴你知道吗?Java是由C++开发而来的,并且在当时一直被搁置.随着Java语言的崛起那么Java和C/C++有什么不同和相同之处呢? 通过上述我们知道那Java前身是C++,并且保留了C++的大 ...

  4. 实验大作业c语言实现简单ftp,C 语言实现 FTP 服务器

    3.1 main 函数的框架 3.2 首先进行命令行合法性检测 在服务器端应该设置服务器的端口号等信息,通过命令行参数的形式传递给服务器程序: if (argc != 2) { printf(&quo ...

  5. java点名代码滚动_JAVA多线程实现简单的点名系统

    效果图如下: CMain函数: package com.shubing.main; public class CMain { public static void main(String[] args ...

  6. java 抽象工厂工厂_Java设计模式之简单工厂、工厂方法和抽象工厂

    学习Java的同学注意了!!! 学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:456544752我们一起学Java! 在前面的学习中(参见前面的博客),我们学到了很 ...

  7. java zip解压_Java语言入门第一课

    Java最初的目标是嵌入式设备,不过在嵌入式设备方面并未取得成功.失之东隅,收之桑榆,Java却在Web领域被广泛接受.近年来,随着Java在服务器领域的不断突破,让这门语言越来越流行. 有人喜欢Ja ...

  8. java程序设计基础篇_Java语言程序设计(基础篇) 第一章

    第一章 计算机.程序和Java概述 1.1 引言 什么是程序设计呢? 程序设计就是创建(或者开发)软件,软件也称为程序. 1.2 什么是计算机 计算机是存储和处理数据的电子设备,计算机包括硬件(har ...

  9. java解析tcp报文_JAVA语言TCP通信和JDBC示例(AIS信息解析)

    JAVA实现AIS信息的接受,解析和存储 船舶自动识别系统(Automatic Identification System, 简称AIS)是一种新型的助航设备.AIS基本功能是:将本船和他船的精确船位 ...

最新文章

  1. 人工构造迭代次数高度简并的神经网络训练集
  2. sevlet实现下载文件功能
  3. (常用API)正则表达式练习和相关的String类方法
  4. 实现业务数据的同步迁移 · 思路一
  5. EE Servlet 3:简单表单处理
  6. ZOJ2930 The Worst Schedule(最小割)
  7. Hive案例:统计单词个数
  8. 为什么MySQL不建议使用NULL作为列默认值?
  9. NFS客户端挂载目录后无写入权限的解决方案
  10. JAVA的延时函数使用
  11. 对列 、生产者与消费者
  12. (转)区块链:为什么说finchain是下一代金融应用平台
  13. linux把mac格式化了,Mac上将树莓派已经写了系统的SD卡(磁盘)抹除、格式化
  14. 计算机二级excel高级筛选,Excel高级筛选怎么用之相关案例:excel高级筛选多个条件(并且、或用法)...
  15. oracle 英文 简历,英文优秀个人简历模板范文
  16. 报错 | Error: EPERM: operation not permitted, unlink ‘C:\Users\Admin\practice\node_modules\css-loader
  17. excel 获取股票价格_股票价格的Excel点图
  18. 用位运算来代替乘法、除法和取余的方式
  19. C++中测数组的长度
  20. python项目实例-python简单项目实例

热门文章

  1. 【渝粤教育】国家开放大学2019年春季 8简明现代汉语 参考试题
  2. 全面详细介绍Linux 虚拟文件系统(VFS)原理
  3. 可视化开发非标系统,低代码平台零元就能实现
  4. C++实现飞鸽传书仿QQ即时通讯软件!(源码打包好了!)
  5. 三维扫描在崇明花博会异形天桥及旋转楼梯测绘中的应用
  6. UART串口协议基础1
  7. 线上升级Redis纪实
  8. 妙用卡巴斯基家长控制功能绿色上网
  9. python使用pip install安装django报错
  10. Java6-7章总结复习