简单FTP客户端软件开发——搭建FTP服务器

2024-01-02 10:23:43

计网课程设计的要求是:

1) 该FTP客户端程序具有以下基本功能:

  能完成FTP链接的打开和关闭操作;

  能执行文件的上传和下载;

  能完成目录的创建、删除等有关操作。

  要求可以传输简单的文本文件。

2) 开发美观易用的图形界面

FTP使用客户服务器方式,因为开发的是客户端,所以需要一个FTP服务器,客户端进行连接访问,进行文件操作。

前面我们已经安装好了Linux虚拟机,在Linux搭建FTP服务器原参考博客:

【Linux - 搭建ftp服务器】http://t.csdnimg.cn/zDGCa

但是!!!按照原博客搭建的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客户端的开发了!!!

注意:每次关闭Linux虚拟机后,再次启动FTP服务器前都需要关闭防火墙和selinux。

文章来源:https://blog.csdn.net/m0_62122789/article/details/135330961
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。