java关闭ftp 连接_Java语言实现简单FTP软件------gt;连接管理模块的实现:主机与服务器之间的连接与关闭操作(八) - 移动编程 - ITeye博客...
(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博客...相关推荐
- java实现ftp协议_Java语言实现简单FTP软件 FTP协议分析(1)
FTP(File Transfer Protocol)就是文件传输协议.通过FTP客户端从远程FTP服务器上拷贝文件到本地计算机称为下载,将本地计算机上的文件复制到远程FTP服务器上称为上传,上传和下 ...
- Java语言实现简单FTP软件------源码放送(十三)
Java语言实现简单FTP软件------>FTP协议分析(一) Java语言实现简单FTP软件------>FTP软件效果图预览之下载功能(二) Java语言实现简单FTP软件----- ...
- java c++的区别_Java语言与C、C++之间的区别?
小伙伴你知道吗?Java是由C++开发而来的,并且在当时一直被搁置.随着Java语言的崛起那么Java和C/C++有什么不同和相同之处呢? 通过上述我们知道那Java前身是C++,并且保留了C++的大 ...
- 实验大作业c语言实现简单ftp,C 语言实现 FTP 服务器
3.1 main 函数的框架 3.2 首先进行命令行合法性检测 在服务器端应该设置服务器的端口号等信息,通过命令行参数的形式传递给服务器程序: if (argc != 2) { printf(&quo ...
- java点名代码滚动_JAVA多线程实现简单的点名系统
效果图如下: CMain函数: package com.shubing.main; public class CMain { public static void main(String[] args ...
- java 抽象工厂工厂_Java设计模式之简单工厂、工厂方法和抽象工厂
学习Java的同学注意了!!! 学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:456544752我们一起学Java! 在前面的学习中(参见前面的博客),我们学到了很 ...
- java zip解压_Java语言入门第一课
Java最初的目标是嵌入式设备,不过在嵌入式设备方面并未取得成功.失之东隅,收之桑榆,Java却在Web领域被广泛接受.近年来,随着Java在服务器领域的不断突破,让这门语言越来越流行. 有人喜欢Ja ...
- java程序设计基础篇_Java语言程序设计(基础篇) 第一章
第一章 计算机.程序和Java概述 1.1 引言 什么是程序设计呢? 程序设计就是创建(或者开发)软件,软件也称为程序. 1.2 什么是计算机 计算机是存储和处理数据的电子设备,计算机包括硬件(har ...
- java解析tcp报文_JAVA语言TCP通信和JDBC示例(AIS信息解析)
JAVA实现AIS信息的接受,解析和存储 船舶自动识别系统(Automatic Identification System, 简称AIS)是一种新型的助航设备.AIS基本功能是:将本船和他船的精确船位 ...
最新文章
- 人工构造迭代次数高度简并的神经网络训练集
- sevlet实现下载文件功能
- (常用API)正则表达式练习和相关的String类方法
- 实现业务数据的同步迁移 · 思路一
- EE Servlet 3:简单表单处理
- ZOJ2930 The Worst Schedule(最小割)
- Hive案例:统计单词个数
- 为什么MySQL不建议使用NULL作为列默认值?
- NFS客户端挂载目录后无写入权限的解决方案
- JAVA的延时函数使用
- 对列 、生产者与消费者
- (转)区块链:为什么说finchain是下一代金融应用平台
- linux把mac格式化了,Mac上将树莓派已经写了系统的SD卡(磁盘)抹除、格式化
- 计算机二级excel高级筛选,Excel高级筛选怎么用之相关案例:excel高级筛选多个条件(并且、或用法)...
- oracle 英文 简历,英文优秀个人简历模板范文
- 报错 | Error: EPERM: operation not permitted, unlink ‘C:\Users\Admin\practice\node_modules\css-loader
- excel 获取股票价格_股票价格的Excel点图
- 用位运算来代替乘法、除法和取余的方式
- C++中测数组的长度
- python项目实例-python简单项目实例