你好我已經連接到FTP使用URLConnection
只有IP地址,沒有指定登錄憑證。FTP連接沒有用戶名和密碼?
URLConnection conn = new URLConnection(new URL("ftp://222.101.102.1/etc"));
它的工作原理,沒有證書,因爲服務器可能允許匿名連接。
但實踐我想讓從頭與Socket
客戶端的FTP連接,我創建了一個新的套接字連接到IP:
Socket socket = new Socket("222.101.102.1", 21);
if (socket != null) {
BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String version = reader.readLine();
System.out.println(version);
}
這將打印220 vsFTPd (2.0.5)
但是當我嘗試做命令狀LS \r\n
我得到530 Please login with USER and PASS
爲什麼它要求我登錄,如果沒有URLConnection
?
此代碼沒有編譯,因爲它是從我的另一臺計算機記憶下來的,所以讓我知道如果您發現錯誤,我馬上編輯。
IIRC,當你建立一個套接字時,你正在圍繞一個協議建立整個工作,但你必須設置它將如何通過該協議進行通信。當您構建URLConnection對象時,您正在創建一個已經包含這些工作的對象。換句話說,URLConnection知道如何連接和登錄,但在你正在構建的Socket中,它只知道如何物理連接。它不知道下一步該怎麼做。 –
@blahfunk這就是我所需要的!我需要有關URLConnection如何執行此操作的信息,它作爲默認連接憑據使用的位置,我在哪裏獲得該信息?人們說用戶名是匿名的,或者ftp和密碼是電子郵件,但我們並不使用那些我不知道的電子郵件。 – Jony