gpt4 book ai didi

java - FTP客户端java实现

转载 作者:太空宇宙 更新时间:2023-11-04 07:41:55 28 4
gpt4 key购买 nike

我被 FTP 客户端 java 实现困住了。我所要做的就是连接到 FTP 服务器并将一个文件传输到服务器。

我设法与 ftp 服务器建立连接(参见下面的代码),之后我使用 PASV 命令进入被动模式。现在我不知道下一步该做什么。我尝试在 PASV 命令后创建一个新套接字并将其连接到 FTP 服务器端口 20,但这不起作用。

我的问题是建立连接时如何启动文件传输? (我的想法是与端口20建立连接并执行STOR命令,但我不知道该怎么做)。

您有什么想法或有用的建议吗?

顺便说一句。我必须在不使用像 FTPClient 这样的 java 类的情况下实现这个

这是我的代码:

   public class FTPtest {

Socket socket;
PrintWriter pw;
BufferedReader input;
String info = "";

public FTPtest(){
try{
socket = new Socket("some_ftp_server", 21);
logUsername();
closeEverything();
}
catch(IOException ioe){
System.out.println("error");
}
}

public void logUsername()throws IOException{
input = new BufferedReader(new InputStreamReader(socket.getInputStream()));
pw = new PrintWriter(socket.getOutputStream());

//user
pw.write("USER some_user\n");
pw.flush();
System.out.println(input.readLine());

//pass
pw.write("PASS some_pass");
pw.flush();
System.out.println(input.readLine());
System.out.println(input.readLine());

//PASV
pw.write("PASV");
pw.flush();
}

public void closeEverything() throws IOException{
input.close();
pw.close();
socket.close();
}
public static void main(String[]args){
new FTPtest();
}
}

最佳答案

您最好使用已经存在的 FTP 客户端库。至于 PASV 请求 - 服务器响应它返回编码的 IP 地址和端口,您应该连接到该地址以进行数据连接。

关于java - FTP客户端java实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15930110/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com