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

开发者社区> 开发与运维> 正文

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

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


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章