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 API
如何使用Java语言快速开发一套智慧工地系统
使用Java开发智慧工地系统,采用Spring Cloud微服务架构和前后端分离设计,结合MySQL、MongoDB数据库及RESTful API,集成人脸识别、视频监控、设备与环境监测等功能模块,运用Spark/Flink处理大数据,ECharts/AntV G2实现数据可视化,确保系统安全与性能,采用敏捷开发模式,提供详尽文档与用户培训,支持云部署与容器化管理,快速构建高效、灵活的智慧工地解决方案。
|
2天前
|
Oracle Java 关系型数据库
Java基础(一):语言概述
Java基础(一):语言概述
Java基础(一):语言概述
|
11天前
|
存储 监控 算法
探秘局域网桌面监控:深入剖析 Java 语言核心算法
在数字化办公时代,局域网桌面监控如同企业的“智慧鹰眼”,确保工作效率与数据安全。本文以Java为载体,揭示哈希表在监控中的关键应用。通过高效的数据结构和算法,哈希表能快速索引设备连接信息,大幅提升监控的时效性和响应速度。代码示例展示了如何用Java实现设备网络连接监控,结合未来技术如AI、大数据,展望更智能的监控体系,助力企业在数字化浪潮中稳健前行。
|
2月前
|
SQL 安全 Java
安全问题已经成为软件开发中不可忽视的重要议题。对于使用Java语言开发的应用程序来说,安全性更是至关重要
在当今网络环境下,Java应用的安全性至关重要。本文深入探讨了Java安全编程的最佳实践,包括代码审查、输入验证、输出编码、访问控制和加密技术等,帮助开发者构建安全可靠的应用。通过掌握相关技术和工具,开发者可以有效防范安全威胁,确保应用的安全性。
60 4
|
9天前
|
弹性计算 数据挖掘 应用服务中间件
阿里云轻量应用服务器68元与云服务器99元和199元区别及选择参考
目前阿里云有三款特惠云服务器,第一款轻量云服务器2核2G68元一年,第二款经济型云服务器2核2G3M带宽99元1年,第三款通用算力型2核4G5M带宽199元一年。有的新手用户并不是很清楚他们之间的区别,因此不知道如何选择。本文来介绍一下它们之间的区别以及选择参考。
226 86
|
2天前
|
存储 弹性计算 应用服务中间件
阿里云轻量应用服务器出新品通用型实例了,全球26个地域可选
近日,阿里云再度发力,推出了首款全新升级的轻量应用服务器——通用型实例。这款服务器实例不仅标配了200Mbps峰值公网带宽,更在计算、存储、网络等基础资源上进行了全面优化,旨在为中小企业和开发者提供更加轻量、易用、普惠的云计算服务,满足其对于通用计算小算力的迫切需求。目前,这款新品已在全球26个地域正式上线,为全球用户提供了更加便捷、高效的上云选择。
|
19天前
|
机器学习/深度学习 人工智能 PyTorch
阿里云GPU云服务器怎么样?产品优势、应用场景介绍与最新活动价格参考
阿里云GPU云服务器怎么样?阿里云GPU结合了GPU计算力与CPU计算力,主要应用于于深度学习、科学计算、图形可视化、视频处理多种应用场景,本文为您详细介绍阿里云GPU云服务器产品优势、应用场景以及最新活动价格。
阿里云GPU云服务器怎么样?产品优势、应用场景介绍与最新活动价格参考
|
18天前
|
存储 运维 安全
阿里云弹性裸金属服务器是什么?产品规格及适用场景介绍
阿里云服务器ECS包括众多产品,其中弹性裸金属服务器(ECS Bare Metal Server)是一种可弹性伸缩的高性能计算服务,计算性能与传统物理机无差别,具有安全物理隔离的特点。分钟级的交付周期将提供给您实时的业务响应能力,助力您的核心业务飞速成长。本文为大家详细介绍弹性裸金属服务器的特点、优势以及与云服务器的对比等内容。
|
10天前
|
存储 人工智能 网络协议
浅聊阿里云倚天云服务器:c8y、g8y、r8y实例性能详解与活动价格参考
选择一款高性能、高性价比的云服务器对于企业而言至关重要,阿里云推出的倚天云服务器——c8y、g8y、r8y三款实例,它们基于ARM架构,采用阿里自研的倚天710处理器,并基于新一代CIPU架构,通过芯片快速路径加速手段,实现了计算、存储、网络性能的大幅提升。2025年,计算型c8y云服务器活动价格860.65元一年起,通用型g8y云服务器活动价格1187.40元一年起,内存型r8y云服务器活动价格1454.32元一年起。本文将为大家详细解析这三款实例的性能特点、应用场景以及最新的活动价格情况,帮助大家更好地了解阿里云倚天云服务器。
|
26天前
|
人工智能 JSON Linux
利用阿里云GPU加速服务器实现pdf转换为markdown格式
随着AI模型的发展,GPU需求日益增长,尤其是个人学习和研究。直接购置硬件成本高且更新快,建议选择阿里云等提供的GPU加速型服务器。
利用阿里云GPU加速服务器实现pdf转换为markdown格式

热门文章

最新文章