计网课程设计的要求是:
1) 该FTP客户端程序具有以下基本功能:
能完成FTP链接的打开和关闭操作; 能执行文件的上传和下载; 能完成目录的创建、删除等有关操作。 要求可以传输简单的文本文件。
2) 开发美观易用的图形界面
FTP使用客户服务器方式,因为开发的是客户端,所以需要一个FTP服务器,客户端进行连接访问,进行文件操作。
前面我们已经安装好了Linux虚拟机,在Linux搭建FTP服务器原参考博客:
【Linux - 搭建ftp服务器】
但是!!!按照原博客搭建的FTP服务器会有很多访问权限问题,导致无法正常连接FTP服务器进行文件操作。
经过很多很多次尝试,我省略了原博客中很多设置,搭建了一个可以正常连接和进行文件操作的FTP服务器。
安装vsftpd软件
yum install vsftpd -y
启动vsftpd软件
service vsftpd start
下载客户端工具ftp和lftp
yum install ftp lftp -y
新建用户
useradd sc
设置密码
echo 123|passwd sc --stdin
登录lftp
查看FTP服务器的ip地址:
ip addr
登录FTP服务器:
lftp -u sc,123 192.168.206.131
登录成功!
cmd无法连接FTP服务器
此时外部还是无法连接FTP服务器:
Windows:WIN+R打开命令行窗口,输入ftp,再输入open+FTP服务器地址
关闭Linux系统的防火墙
service firewalld stop
关闭Linux系统的selinux
selinux是linux的一个内核模块,是linux的安全子系统。
[root@localhost vsftpd]# getenforce
Enforcing
[root@localhost vsftpd]# setenforce 0
[root@localhost vsftpd]# getenforce
Permissive
cmd成功连接FTP服务器
cmd登录FTP服务器
Java连接FTP服务器
package ftp;
import org.apache.commons.net.ftp.FTPClient;
public class ftpConnect {
private static final String ftp_server="192.168.206.131"; //FTP服务器地址
private static final int ftp_port=21; //FTP服务器端口号
private static final String ftp_user="sc"; //用户
private static final String ftp_passwd="123"; //密码
private static final int timeout=5000; //超时时间
private static final String enconding="utf-8"; //编码配置
public static FTPClient getFTPClient() throws Exception{
FTPClient client=new FTPClient(); //实例化FTPClient类
client.connect(ftp_server,ftp_port); //连接FTP服务器
client.login(ftp_user,ftp_passwd); //用户登录
client.setConnectTimeout(timeout); //设置超时时间
client.setControlEncoding(enconding); //设置编码
System.out.println("【FTP连接】状态码"+client.getReplyCode()); //如果可以连接返回230
return client;
}
}
package ftp;
import org.apache.commons.net.ftp.FTPClient;
public class ftpTest {
public static void main(String[] args) throws Exception{
FTPClient client=ftpConnect.getFTPClient(); // 获取FTP连接
System.out.println(client.abort()); //中断当前的FTP传输,如果成功返回true,否则返回false
client.logout(); //注销
}
}
Linux开放文件操作目录权限
FTP服务器的文件操作目录为/var/ftp/,此时无法对该目录进行文件操作,开放该文件夹下所有文件的权限:
chmod -R 777 /var/ftp/*
重启FTP服务器:
service vsftpd restart
外部就可以对/var/ftp/进行文件操作了。
至此!!!就可以进行FTP客户端的开发了!!!文章来源:https://www.toymoban.com/news/detail-772107.html
注意:每次关闭Linux虚拟机后,再次启动FTP服务器前都需要关闭防火墙和selinux。文章来源地址https://www.toymoban.com/news/detail-772107.html
到了这里,关于简单FTP客户端软件开发——搭建FTP服务器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!