我被FTP客戶端java實現卡住了。 我只需要連接到FTP服務器並將一個文件傳輸到服務器。FTP客戶端java實現
我設法與ftp服務器建立連接(見下面的代碼),之後我用PASV命令進入被動模式。現在我不知道下一步該怎麼做。我嘗試在PASV命令後創建一個新的套接字,並將其連接到FTP服務器端口20,但這不起作用。
我的問題是如何建立連接時啓動文件傳輸? (我的想法是與端口20建立連接並執行STOR命令,但我不知道該怎麼做)。
你有什麼想法或有用的建議嗎?
btw。我要實現這一點沒有使用的Java類,如FTPClient
這裏是我的代碼:
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客戶端?因爲如果你只是在尋找一種連接到ftp服務器的方法,並且執行一些操作,你可以看看[Apache Commons-Net](http://commons.apache.org/proper/commons-net/)有一個集成的FTP客戶端類 – BackSlash 2013-04-10 15:38:35
我想在不使用任何FTP客戶端類的情況下自己做FTP客戶端。 – Branko 2013-04-10 15:43:54