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

简介: (1)FTP连接   运行FTP客户端后,首先是连接FTP服务器,需要输入FTP服务器的IP地址及用户名、密码以及端口号后点击连接按钮开始连接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

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


相关文章
|
2月前
|
缓存 算法 Java
Java 实现的局域网管控软件的性能调优
局域网管控软件在企业网络管理中至关重要,但随着网络规模扩大和功能需求增加,其性能可能受影响。文章分析了数据处理效率低下、网络通信延迟和资源占用过高等性能瓶颈,并提出了使用缓存、优化算法、NIO库及合理管理线程池等调优措施,最终通过性能测试验证了优化效果,显著提升了软件性能。
38 1
|
2月前
|
存储 人工智能 算法
数据结构与算法细节篇之最短路径问题:Dijkstra和Floyd算法详细描述,java语言实现。
这篇文章详细介绍了Dijkstra和Floyd算法,这两种算法分别用于解决单源和多源最短路径问题,并且提供了Java语言的实现代码。
89 3
数据结构与算法细节篇之最短路径问题:Dijkstra和Floyd算法详细描述,java语言实现。
|
28天前
|
SQL 安全 Java
安全问题已经成为软件开发中不可忽视的重要议题。对于使用Java语言开发的应用程序来说,安全性更是至关重要
在当今网络环境下,Java应用的安全性至关重要。本文深入探讨了Java安全编程的最佳实践,包括代码审查、输入验证、输出编码、访问控制和加密技术等,帮助开发者构建安全可靠的应用。通过掌握相关技术和工具,开发者可以有效防范安全威胁,确保应用的安全性。
48 4
|
2月前
|
Java 程序员 编译器
在Java编程中,保留字(如class、int、for等)是具有特定语法意义的预定义词汇,被语言本身占用,不能用作变量名、方法名或类名。
在Java编程中,保留字(如class、int、for等)是具有特定语法意义的预定义词汇,被语言本身占用,不能用作变量名、方法名或类名。本文通过示例详细解析了保留字的定义、作用及与自定义标识符的区别,帮助开发者避免因误用保留字而导致的编译错误,确保代码的正确性和可读性。
55 3
|
2月前
|
移动开发 Java 大数据
深入探索Java语言的核心优势与现代应用实践
【10月更文挑战第10天】深入探索Java语言的核心优势与现代应用实践
81 4
|
2月前
|
分布式计算 安全 Java
Java语言的特点?
Java语言的特点?
|
20天前
|
人工智能 弹性计算 编解码
阿里云GPU云服务器性能、应用场景及收费标准和活动价格参考
GPU云服务器作为阿里云提供的一种高性能计算服务,通过结合GPU与CPU的计算能力,为用户在人工智能、高性能计算等领域提供了强大的支持。其具备覆盖范围广、超强计算能力、网络性能出色等优势,且计费方式灵活多样,能够满足不同用户的需求。目前用户购买阿里云gpu云服务器gn5 规格族(P100-16G)、gn6i 规格族(T4-16G)、gn6v 规格族(V100-16G)有优惠,本文为大家详细介绍阿里云gpu云服务器的相关性能及收费标准与最新活动价格情况,以供参考和选择。
|
25天前
|
机器学习/深度学习 人工智能 弹性计算
什么是阿里云GPU云服务器?GPU服务器优势、使用和租赁费用整理
阿里云GPU云服务器提供强大的GPU算力,适用于深度学习、科学计算、图形可视化和视频处理等多种场景。作为亚太领先的云服务提供商,阿里云的GPU云服务器具备灵活的资源配置、高安全性和易用性,支持多种计费模式,帮助企业高效应对计算密集型任务。
|
27天前
|
存储 分布式计算 固态存储
阿里云2核16G、4核32G、8核64G配置云服务器租用收费标准与活动价格参考
2核16G、8核64G、4核32G配置的云服务器处理器与内存比为1:8,这种配比的云服务器一般适用于数据分析与挖掘,Hadoop、Spark集群和数据库,缓存等内存密集型场景,因此,多为企业级用户选择。目前2核16G配置按量收费最低收费标准为0.54元/小时,按月租用标准收费标准为260.44元/1个月。4核32G配置的阿里云服务器按量收费标准最低为1.08元/小时,按月租用标准收费标准为520.88元/1个月。8核64G配置的阿里云服务器按量收费标准最低为2.17元/小时,按月租用标准收费标准为1041.77元/1个月。本文介绍这些配置的最新租用收费标准与活动价格情况,以供参考。
|
25天前
|
机器学习/深度学习 人工智能 弹性计算
阿里云GPU服务器全解析_GPU价格收费标准_GPU优势和使用说明
阿里云GPU云服务器提供强大的GPU算力,适用于深度学习、科学计算、图形可视化和视频处理等场景。作为亚太领先的云服务商,阿里云GPU云服务器具备高灵活性、易用性、容灾备份、安全性和成本效益,支持多种实例规格,满足不同业务需求。
164 2