首页

java 实现FTP 服务器和客户端(含使用说明)

java

2020-6-28

使用java基于socket开发的FTP客户端和服务器,实现了基本的登录,注册,上传下载,等各种功能,同时使用了基于工厂的设计模式,具有较好的可扩展性

import java.awt.EventQueue;

import javax.swing.*;
import java.awt.BorderLayout;
import javax.swing.border.BevelBorder;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.Color;
import java.awt.Font;
import java.awt.Toolkit;
import javax.swing.table.DefaultTableModel;
import javax.swing.border.CompoundBorder;
import javax.swing.border.LineBorder;
import javax.swing.filechooser.FileSystemView;

import org.apache.commons.net.ftp.FTPFile;

import java.awt.ScrollPane;
import java.awt.Label;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.Vector;
import java.awt.Scrollbar;

public class Frame_Main implements ActionListener{


    //初始化参数--------------------------------
    static FTPFile[] file;
    static String FTP="127.0.0.1";
    static String username="liyz";
    static String password="000000";
    //初始化参数--------------------------------


    private JFrame frame;
    private JTable table;
    static Ftp_by_me_active ftp;
    public static Ftp_by_me_active getFtp() {
        return ftp;
    }
    public static FTPFile[] getFile(){
        return file;
    }

    /**
     * Launch the application.
     */
    public static void main(String[] args) {

        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    Frame_Main window = new Frame_Main();
                    window.frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });

    }

    /**
     * Create the application.
     */
    public Frame_Main() {
        initialize();
    }

    /**
     * Initialize the contents of the frame.
     */
    private void initialize() {
        frame = new JFrame();
        frame.setIconImage(Toolkit.getDefaultToolkit().getImage(Frame_Main.class.getResource("/com/sun/java/swing/plaf/windows/icons/UpFolder.gif")));
        frame.setTitle("FTP Client");
        frame.setBounds(100, 100, 470, 534);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().setLayout(null);


        //显示基本信息(FTP username)-----------------------------------------------
        JLabel lblNewLabel = new JLabel("FTP IP地址");
        lblNewLabel.setBounds(32, 8, 70, 15);
        frame.getContentPane().add(lblNewLabel);

        JLabel lblNewLabel_1 = new JLabel("用户名");
        lblNewLabel_1.setBounds(32, 25, 70, 15);
        frame.getContentPane().add(lblNewLabel_1);

        JLabel lblNewLabel_2 = new JLabel("密码");
        lblNewLabel_2.setBounds(32, 40, 70, 15);
        frame.getContentPane().add(lblNewLabel_2);

        JTextField url = new JTextField("127.0.0.1");   //FTP服务地址
        url.setBounds(110,8,82,15);
        frame.getContentPane().add(url);

        JTextField usernameField = new JTextField("admin"); //用户名
        usernameField.setBounds(110,25,82,15);
        frame.getContentPane().add(usernameField);

        JPasswordField passwordField = new JPasswordField("000000");  //密码
        passwordField.setBounds(110,40,82,15);
        frame.getContentPane().add(passwordField);



        //登录按钮------------------------------------------------
        JButton login=new JButton("登录");
        login.setFont(new Font("宋体", Font.PLAIN, 12));
        login.setBackground(UIManager.getColor("Button.highlight"));
        login.setBounds(210, 10, 82, 23);
        frame.getContentPane().add(login);
        login.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                System.out.println("登录==============");
                try {
                    FTP=url.getText().trim();
                    username=usernameField.getText().trim();
                    password=passwordField.getText().trim();

                    ftp=new Ftp_by_me_active(FTP,username,password);
                    if(Ftp_by_me_active.isLogined)
                    {
                        file=ftp.getAllFile();
                        setTableInfo();//显示所有文件信息

                        url.setEditable(false);
                        usernameField.setEditable(false);
                        passwordField.setEditable(false);
                    }


                } catch (Exception e1) {
                    e1.printStackTrace();
                    JOptionPane.showConfirmDialog(null, "用户名或者密码错误\n username:" username, "ERROR_MESSAGE",JOptionPane.ERROR_MESSAGE);
                }
            }
        });


        //登录按钮------------------------------------------------
        JButton regist=new JButton("注册");
        regist.setFont(new Font("宋体", Font.PLAIN, 12));
        regist.setBackground(UIManager.getColor("Button.highlight"));
        regist.setBounds(210, 40, 82, 23);
        frame.getContentPane().add(regist);
        regist.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                System.out.println("注册==============");
                try {

                    username=usernameField.getText().trim();
                    password=passwordField.getText().trim();

                    ftp=new Ftp_by_me_active(FTP,username,password,"register");
                    if(Ftp_by_me_active.isLogined)
                    {
                        file=ftp.getAllFile();
                        setTableInfo();//显示所有文件信息

                        url.setEditable(false);
                        usernameField.setEditable(false);
                        passwordField.setEditable(false);
                    }


                } catch (Exception e1) {
                    e1.printStackTrace();
                    JOptionPane.showConfirmDialog(null, "用户名或者密码错误\n username:" username, "ERROR_MESSAGE",JOptionPane.ERROR_MESSAGE);
                }
            }
        });


        //上传按钮--------------------------------------------------
        JButton upload = new JButton("上传");
        upload.setFont(new Font("宋体", Font.PLAIN, 12));
        upload.setBackground(UIManager.getColor("Button.highlight"));
        upload.setBounds(312, 40, 82, 23);
        frame.getContentPane().add(upload);
        upload.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
                //上传点击按钮触发------------------------------------
                System.out.println("上传!!!!!");
                int result = 0;
                File file = null;
                String path = null;
                JFileChooser fileChooser = new JFileChooser();
                FileSystemView fsv = FileSystemView.getFileSystemView();
                System.out.println(fsv.getHomeDirectory());                //得到桌面路径  
                fileChooser.setCurrentDirectory(fsv.getHomeDirectory());
                fileChooser.setDialogTitle("请选择要上传的文件...");
                fileChooser.setApproveButtonText("确定");
                fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
                result = fileChooser.showOpenDialog(null);
                if (JFileChooser.APPROVE_OPTION == result) {
                    path=fileChooser.getSelectedFile().getPath();
                    System.out.println("path: " path);
                    try {
                        //下载
                        ftp.upload(path);
                        System.out.println("文件上传成功");
                    } catch (Exception e1) {
                        // TODO Auto-generated catch block
                        e1.printStackTrace();
                    }
                }
                //上传点击按钮触发------------------------------------
            }
        });

        //上传按钮--------------------------------------------------



        //刷新按钮--------------------------------------------------
        JButton refresh = new JButton("刷新");
        refresh.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
                try{
                    file=ftp.getAllFile();
                    setTableInfo();
                }
                catch (Exception e)
                {
                    e.printStackTrace();
                }
            }
        });
        refresh.setFont(new Font("宋体", Font.PLAIN, 12));
        refresh.setBackground(UIManager.getColor("Button.highlight"));
        refresh.setBounds(312, 10, 82, 23);
        frame.getContentPane().add(refresh);
        //刷新按钮--------------------------------------------------


    }

    //显示基本信息-----------------------------------------------
    private void setTableInfo()
    {
        //table数据初始化  从FTP读取所有文件
        String[][] data1=new String[file.length][4];
        for(int row=0;row<file.length;row  )
        {

            data1[row][0]=file[row].getName();
            if(file[row].isDirectory())
            {
                data1[row][1]="文件夹";
            }
            else if(file[row].isFile()){
                String[] geshi=file[row].getName().split("\\.");
                data1[row][1]=geshi[1];
            }
            data1[row][2]=file[row].getSize() "";
            data1[row][3]="下载";
        }



        //table列名-----------------------------------------------------
        String[] columnNames = {"文件", "文件类型", "文件大小(B)", ""  };
        DefaultTableModel model = new DefaultTableModel();
        model.setDataVector(data1, columnNames);

        //加滚动条--------------------------------------------------------
        JScrollPane scrollPane = new JScrollPane();
        scrollPane.setBounds(32, 73, 400, 384);
        frame.getContentPane().add(scrollPane);
        //加滚动条-----------------------------------------------------

        //table功能------------------------------------------------------
        table = new JTable(model);
        scrollPane.setViewportView(table);
        table.setColumnSelectionAllowed(true);
        table.setCellSelectionEnabled(true);
        table.setFont(new Font("微软雅黑", Font.PLAIN, 12));
        table.setBorder(new LineBorder(new Color(0, 0, 0)));
        table.getColumnModel().getColumn(0).setPreferredWidth(200);
        table.setToolTipText("可以点击下载");

        //table button初始化(最后一列的按键)--------------------
        ButtonColumn buttonsColumn = new ButtonColumn(table, 3);
    }

    @Override
    public void actionPerformed(ActionEvent arg0) {
        // TODO Auto-generated method stub

    }
}

资源下载此资源下载价格为3D币(VIP免费),请先
资源文件列表
FTP/FTPServer/.classpath , 295
FTP/FTPServer/.idea/artifacts/FTPServer_jar.xml , 385
FTP/FTPServer/.idea/misc.xml , 258
FTP/FTPServer/.idea/modules.xml , 258
FTP/FTPServer/.idea/workspace.xml , 48475
FTP/FTPServer/.project , 368
FTP/FTPServer/.settings/org.eclipse.jdt.core.prefs , 587
FTP/FTPServer/FTPServer.iml , 726
FTP/FTPServer/Settings.ini , 681
FTP/FTPServer/bin/Command.class , 173
FTP/FTPServer/bin/CommandFactory.class , 1351
FTP/FTPServer/bin/ControllerThread.class , 3989
FTP/FTPServer/bin/CwdCommand.class , 1375
FTP/FTPServer/bin/DirCommand.class , 3057
FTP/FTPServer/bin/FtpServer.class , 1035
FTP/FTPServer/bin/META-INF/MANIFEST.MF , 48
FTP/FTPServer/bin/PassCommand.class , 1867
FTP/FTPServer/bin/PasvCommand.class , 2150
FTP/FTPServer/bin/PortCommand.class , 1612
FTP/FTPServer/bin/QuitCommand.class , 911
FTP/FTPServer/bin/RegisterCommand.class , 1465
FTP/FTPServer/bin/RetrCommand.class , 2314
FTP/FTPServer/bin/Share.class , 1053
FTP/FTPServer/bin/StoreCommand.class , 2109
FTP/FTPServer/bin/UserCommand.class , 1202
FTP/FTPServer/config/server.xml , 340
FTP/FTPServer/lib/jdom.jar , 152797
FTP/FTPServer/out/artifacts/FTPServer_jar/FTPServer.jar , 170544
FTP/FTPServer/src/Command.java , 325
FTP/FTPServer/src/CommandFactory.java , 758
FTP/FTPServer/src/ControllerThread.java , 5120
FTP/FTPServer/src/CwdCommand.java , 858
FTP/FTPServer/src/DirCommand.java , 2653
FTP/FTPServer/src/FtpServer.java , 940
FTP/FTPServer/src/META-INF/MANIFEST.MF , 48
FTP/FTPServer/src/PassCommand.java , 1081
FTP/FTPServer/src/PasvCommand.java , 1890
FTP/FTPServer/src/PortCommand.java , 786
FTP/FTPServer/src/QuitCommand.java , 445
FTP/FTPServer/src/RegisterCommand.java , 840
FTP/FTPServer/src/RetrCommand.java , 1700
FTP/FTPServer/src/Share.java , 2815
FTP/FTPServer/src/StoreCommand.java , 1504
FTP/FTPServer/src/UserCommand.java , 792
FTP/Home Ftp Server/HomeFtpServer.exe , 826368
FTP/Home Ftp Server/HomeFtpServer.pdf , 91099
FTP/Home Ftp Server/HomeFtpServerFI.pdf , 128239
FTP/Home Ftp Server/Readme-╓╨╣╪┤σ╘┌╧▀ZOL.htm , 2954
FTP/Home Ftp Server/ftp/root.txt , 112
FTP/Home Ftp Server/ftp/test folder/test.txt , 359
FTP/Home Ftp Server/pics/2ftp_downloading.ico , 766
FTP/Home Ftp Server/pics/2ftp_gray.ico , 766
FTP/Home Ftp Server/pics/2ftp_green.ico , 766
FTP/Home Ftp Server/pics/2ftp_red.ico , 766
FTP/Home Ftp Server/pics/2ftp_white.ico , 766
FTP/Home Ftp Server/pics/2ftp_yellow.ico , 766
FTP/Home Ftp Server/support.html , 2673
FTP/Home Ftp Server/the_tindy_project.txt , 285
FTP/Home Ftp Server/╡≈╩╘╨┼╧ó.docx , 13763
FTP/client/.idea/.name , 9
FTP/client/.idea/artifacts/client_jar.xml , 387
FTP/client/.idea/misc.xml , 273
FTP/client/.idea/modules.xml , 252
FTP/client/.idea/workspace.xml , 71905
FTP/client/client.iml , 663
FTP/client/libs/commons-net-3.0.1.jar , 269014
FTP/client/out/artifacts/client_jar/client.jar , 292532
FTP/client/out/production/client/ButtonColumn.class , 4679
FTP/client/out/production/client/Frame_Main$1.class , 788
FTP/client/out/production/client/Frame_Main$2.class , 2262
FTP/client/out/production/client/Frame_Main$3.class , 2279
FTP/client/out/production/client/Frame_Main$4.class , 2247
FTP/client/out/production/client/Frame_Main$5.class , 1000
FTP/client/out/production/client/Frame_Main.class , 6483
FTP/client/out/production/client/Ftp_by_apache.class , 3395
FTP/client/out/production/client/Ftp_by_me_active.class , 7544
FTP/client/out/production/client/Ftp_by_me_passive.class , 7002
FTP/client/out/production/client/META-INF/MANIFEST.MF , 49
FTP/client/src/ButtonColumn.java , 3971
FTP/client/src/Frame_Main.java , 11238
FTP/client/src/Ftp_by_apache.java , 4199
FTP/client/src/Ftp_by_me_active.java , 8706
FTP/client/src/Ftp_by_me_passive.java , 8371
FTP/client/src/META-INF/MANIFEST.MF , 49
FTP/readme.md , 2755
FTP/╩╡╤Θ╞▀ ╗∙╙┌socket╡─TCP╙ª╙├▒α│╠/TCP╩╛└²│╠╨≥/TCPClient/Debug/BuildLog.htm , 12036
FTP/╩╡╤Θ╞▀ ╗∙╙┌socket╡─TCP╙ª╙├▒α│╠/TCP╩╛└²│╠╨≥/TCPClient/Debug/TCPClient.exe , 454656
FTP/╩╡╤Θ╞▀ ╗∙╙┌socket╡─TCP╙ª╙├▒α│╠/TCP╩╛└²│╠╨≥/TCPClient/Debug/TCPClient.exe.embed.manifest , 146
FTP/╩╡╤Θ╞▀ ╗∙╙┌socket╡─TCP╙ª╙├▒α│╠/TCP╩╛└²│╠╨≥/TCPClient/Debug/TCPClient.exe.embed.manifest.res , 212
FTP/╩╡╤Θ╞▀ ╗∙╙┌socket╡─TCP╙ª╙├▒α│╠/TCP╩╛└²│╠╨≥/TCPClient/Debug/TCPClient.exe.intermediate.manifest , 145
FTP/╩╡╤Θ╞▀ ╗∙╙┌socket╡─TCP╙ª╙├▒α│╠/TCP╩╛└²│╠╨≥/TCPClient/Debug/TCPClient.ilk , 1036996
FTP/╩╡╤Θ╞▀ ╗∙╙┌socket╡─TCP╙ª╙├▒α│╠/TCP╩╛└²│╠╨≥/TCPClient/Debug/TCPClient.obj , 23736
FTP/╩╡╤Θ╞▀ ╗∙╙┌socket╡─TCP╙ª╙├▒α│╠/TCP╩╛└²│╠╨≥/TCPClient/Debug/TCPClient.pch , 786432
FTP/╩╡╤Θ╞▀ ╗∙╙┌socket╡─TCP╙ª╙├▒α│╠/TCP╩╛└²│╠╨≥/TCPClient/Debug/TCPClient.pdb , 1887232
FTP/╩╡╤Θ╞▀ ╗∙╙┌socket╡─TCP╙ª╙├▒α│╠/TCP╩╛└²│╠╨≥/TCPClient/Debug/mt.dep , 65
FTP/╩╡╤Θ╞▀ ╗∙╙┌socket╡─TCP╙ª╙├▒α│╠/TCP╩╛└²│╠╨≥/TCPClient/Debug/vc80.idb , 297984
FTP/╩╡╤Θ╞▀ ╗∙╙┌socket╡─TCP╙ª╙├▒α│╠/TCP╩╛└²│╠╨≥/TCPClient/Debug/vc80.pdb , 86016
FTP/╩╡╤Θ╞▀ ╗∙╙┌socket╡─TCP╙ª╙├▒α│╠/TCP╩╛└²│╠╨≥/TCPClient/TCPClient.cpp , 1708
FTP/╩╡╤Θ╞▀ ╗∙╙┌socket╡─TCP╙ª╙├▒α│╠/TCP╩╛└²│╠╨≥/TCPClient/TCPClient.dsp , 4626
FTP/╩╡╤Θ╞▀ ╗∙╙┌socket╡─TCP╙ª╙├▒α│╠/TCP╩╛└²│╠╨≥/TCPClient/TCPClient.ncb , 6704128
FTP/╩╡╤Θ╞▀ ╗∙╙┌socket╡─TCP╙ª╙├▒α│╠/TCP╩╛└²│╠╨≥/TCPClient/TCPClient.plg , 939
FTP/╩╡╤Θ╞▀ ╗∙╙┌socket╡─TCP╙ª╙├▒α│╠/TCP╩╛└²│╠╨≥/TCPClient/TCPClient.sln , 882
FTP/╩╡╤Θ╞▀ ╗∙╙┌socket╡─TCP╙ª╙├▒α│╠/TCP╩╛└²│╠╨≥/TCPClient/TCPClient.suo , 10752
FTP/╩╡╤Θ╞▀ ╗∙╙┌socket╡─TCP╙ª╙├▒α│╠/TCP╩╛└²│╠╨≥/TCPClient/TCPClient.vcproj , 5278
FTP/╩╡╤Θ╞▀ ╗∙╙┌socket╡─TCP╙ª╙├▒α│╠/TCP╩╛└²│╠╨≥/TCPClient/TCPClient.vcproj.1.chenjiyong.user , 1399
FTP/╩╡╤Θ╞▀ ╗∙╙┌socket╡─TCP╙ª╙├▒α│╠/TCP╩╛└²│╠╨≥/TCPClient/TCPClient.vcproj.DELL-E435D501BA.DELL.user , 1427
FTP/╩╡╤Θ╞▀ ╗∙╙┌socket╡─TCP╙ª╙├▒α│╠/TCP╩╛└²│╠╨≥/TCPexapmle.ncb , 9473024
FTP/╩╡╤Θ╞▀ ╗∙╙┌socket╡─TCP╙ª╙├▒α│╠/TCP╩╛└²│╠╨≥/TCPexapmle.sln , 1348
FTP/╩╡╤Θ╞▀ ╗∙╙┌socket╡─TCP╙ª╙├▒α│╠/TCP╩╛└²│╠╨≥/TCPexapmle.suo , 14848
FTP/╩╡╤Θ╞▀ ╗∙╙┌socket╡─TCP╙ª╙├▒α│╠/TCP╩╛└²│╠╨≥/TCPsrv/Debug/BuildLog.htm , 11796
FTP/╩╡╤Θ╞▀ ╗∙╙┌socket╡─TCP╙ª╙├▒α│╠/TCP╩╛└²│╠╨≥/TCPsrv/Debug/TCPsrv.exe , 454656
FTP/╩╡╤Θ╞▀ ╗∙╙┌socket╡─TCP╙ª╙├▒α│╠/TCP╩╛└²│╠╨≥/TCPsrv/Debug/TCPsrv.exe.embed.manifest , 146
FTP/╩╡╤Θ╞▀ ╗∙╙┌socket╡─TCP╙ª╙├▒α│╠/TCP╩╛└²│╠╨≥/TCPsrv/Debug/TCPsrv.exe.embed.manifest.res , 212
FTP/╩╡╤Θ╞▀ ╗∙╙┌socket╡─TCP╙ª╙├▒α│╠/TCP╩╛└²│╠╨≥/TCPsrv/Debug/TCPsrv.exe.intermediate.manifest , 145
FTP/╩╡╤Θ╞▀ ╗∙╙┌socket╡─TCP╙ª╙├▒α│╠/TCP╩╛└²│╠╨≥/TCPsrv/Debug/TCPsrv.ilk , 1047232
FTP/╩╡╤Θ╞▀ ╗∙╙┌socket╡─TCP╙ª╙├▒α│╠/TCP╩╛└²│╠╨≥/TCPsrv/Debug/TCPsrv.obj , 24886
FTP/╩╡╤Θ╞▀ ╗∙╙┌socket╡─TCP╙ª╙├▒α│╠/TCP╩╛└²│╠╨≥/TCPsrv/Debug/TCPsrv.pch , 786432
FTP/╩╡╤Θ╞▀ ╗∙╙┌socket╡─TCP╙ª╙├▒α│╠/TCP╩╛└²│╠╨≥/TCPsrv/Debug/TCPsrv.pdb , 1887232
FTP/╩╡╤Θ╞▀ ╗∙╙┌socket╡─TCP╙ª╙├▒α│╠/TCP╩╛└²│╠╨≥/TCPsrv/Debug/mt.dep , 65
FTP/╩╡╤Θ╞▀ ╗∙╙┌socket╡─TCP╙ª╙├▒α│╠/TCP╩╛└²│╠╨≥/TCPsrv/Debug/vc80.idb , 297984
FTP/╩╡╤Θ╞▀ ╗∙╙┌socket╡─TCP╙ª╙├▒α│╠/TCP╩╛└²│╠╨≥/TCPsrv/Debug/vc80.pdb , 86016
FTP/╩╡╤Θ╞▀ ╗∙╙┌socket╡─TCP╙ª╙├▒α│╠/TCP╩╛└²│╠╨≥/TCPsrv/TCPexapmle.suo , 17408
FTP/╩╡╤Θ╞▀ ╗∙╙┌socket╡─TCP╙ª╙├▒α│╠/TCP╩╛└²│╠╨≥/TCPsrv/TCPsrv.cpp , 2313
FTP/╩╡╤Θ╞▀ ╗∙╙┌socket╡─TCP╙ª╙├▒α│╠/TCP╩╛└²│╠╨≥/TCPsrv/TCPsrv.dsp , 4591
FTP/╩╡╤Θ╞▀ ╗∙╙┌socket╡─TCP╙ª╙├▒α│╠/TCP╩╛└²│╠╨≥/TCPsrv/TCPsrv.dsw , 739
FTP/╩╡╤Θ╞▀ ╗∙╙┌socket╡─TCP╙ª╙├▒α│╠/TCP╩╛└²│╠╨≥/TCPsrv/TCPsrv.ncb , 6712320
FTP/╩╡╤Θ╞▀ ╗∙╙┌socket╡─TCP╙ª╙├▒α│╠/TCP╩╛└²│╠╨≥/TCPsrv/TCPsrv.opt , 54784
FTP/╩╡╤Θ╞▀ ╗∙╙┌socket╡─TCP╙ª╙├▒α│╠/TCP╩╛└²│╠╨≥/TCPsrv/TCPsrv.plg , 1279
FTP/╩╡╤Θ╞▀ ╗∙╙┌socket╡─TCP╙ª╙├▒α│╠/TCP╩╛└²│╠╨≥/TCPsrv/TCPsrv.vcproj , 5242
FTP/╩╡╤Θ╞▀ ╗∙╙┌socket╡─TCP╙ª╙├▒α│╠/TCP╩╛└²│╠╨≥/TCPsrv/TCPsrv.vcproj.1.chenjiyong.user , 1399
FTP/╩╡╤Θ╞▀ ╗∙╙┌socket╡─TCP╙ª╙├▒α│╠/TCP╩╛└²│╠╨≥/TCPsrv/TCPsrv.vcproj.DELL-E435D501BA.DELL.user , 1427
FTP/╩╡╤Θ╞▀ ╗∙╙┌socket╡─TCP╙ª╙├▒α│╠/debug.log , 90
FTP/╩╡╤Θ╞▀ ╗∙╙┌socket╡─TCP╙ª╙├▒α│╠/╗∙╙┌socket╡─TCP╙ª╙├.docx , 22572
FTP/╩╡╤Θ╞▀ ╗∙╙┌socket╡─TCP╙ª╙├▒α│╠/╗∙╙┌socket╡─TCP╙ª╙├.pdf , 92908
FTP/╩╡╤Θ╞▀ ╗∙╙┌socket╡─TCP╙ª╙├▒α│╠/╙ª╙├╜°│╠┐τ╘╜═°┬τ╡─═¿╨┼.pptx , 156440
FTP/╙÷╡╜╡─╬╩╠Γ.docx , 13763
没有账号? 忘记密码?

社交账号快速登录