2014-02-28 5 views
0

java.net.URLConnection을 사용하여 익명 인증을 사용하여 ftp 서버에서 파일을 검색하려고합니다.사용 권한이 거부되었습니다. 허가없이 포트를 바인딩하려고 시도했습니다. FTP

try { 
     url = new URL("ftp://ftp2.sat.gob.mx/Certificados/FEA/000010/000002/02/03/05/00001000000202030500.cer"); 
     URLConnection con = url.openConnection(); 

     InputStream in = con.getInputStream(); 
     ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
     byte[] buffer = new byte[4096]; 
     int bytesRead; 
     while ((bytesRead = in.read(buffer)) >= 0) 
     { 
      baos.write(buffer, 0, bytesRead); 
     } 
     baos.flush(); 
     arr = baos.toByteArray(); 

     in.close(); 
    } catch (Exception e) { 
     throw new Exception("Error SAT: " + e.getMessage()); 
    } 

내가 얻기 위해 노력하고 파일은,이 자사의 익명 인증 ftp 사이트에서 : ftp://ftp2.sat.gob.mx/Certificados/FEA/000010/000002/02/03/05/00001000000202030500.cer

그러나 때마다 나는이 오류 얻을 : 권한이 거부 :없이 포트를 결합하는 시도를 허가.

것은 내가 GoogleAppEngine 자바 1.7

을 사용하고 조언의 모든 종류의 환영합니다.

답변

0

나는 자바 녀석이 아니지만 기본값 인 "활성"FTP를 사용하려고하고 있다고 생각됩니다.

활성 FTP는 보내는 서버가 연결할 수있는받는 컴퓨터 (이 경우 클라이언트)의 포트에 바인딩하여 파일을 보냅니다. 포트 번호는 get 요청으로 전송됩니다. 이것은 많은 환경에서 작동하지 않습니다. NAT.

일반적인 해결책은 "수동"모드를 사용하는 것입니다.이 모드는 HTTP처럼 동작하며 포트 바인딩이 필요하지 않습니다. Java에서 수동 모드를 사용하도록 연결을 방해하는 방법이 있으면 사용 권한 문제를 무시해야합니다.

+0

고마워, 내 해결책을 사지 않으면 안되지. –

+0

솔루션을 공유 할 수 있습니까? 동일한 문제가있어서 FTP에 연결할 수 없습니다. – JavierSP1209

0

this postthis AppEngine Socket Java API documentation에 따라 요금이 청구되지 않는 앱이있는 경우가 대부분이며, 예산 한도가 $ 0로 설정되어 있지 않으면 결제를 사용해야합니다.

+0

내 응용 프로그램에서 청구 기능을 사용할 수 있습니다. –