안녕하세요. URLConnection
을 사용하여 FTP에 연결했으며 로그인 자격 증명을 지정하지 않고 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은 연결 및 로그인하는 방법을 알고 있지만 소켓에서는 실제로 연결하는 방법 만 알고 있습니다. 그것은 다음에해야할 일을 알지 못합니다. –
@blahfunk 정확히 내가 필요로하는 것! URLConnection이 수행하는 방법에 대한 정보가 필요합니다. 기본 연결 자격 증명으로 사용하는 정보는 어디에서 얻을 수 있습니까? 사람들은 username이 익명이거나 ftp와 password가 이메일이라고 말합니다. 그러나 나는 알고있는 이메일을 사용하지 않습니다. – Jony