마음의 안정을 찾기 위하여 - 인디(Indy 10)에서 FTP Connection이 안되는 경우의 해결방법.
1948841
155
348
관리자새글쓰기
태그위치로그방명록
별일없다의 생각
dawnsea's me2day/2010
색상(RGB)코드 추출기(Color...
Connection Generator/2010
최승호PD, '4대강 거짓말 검...
Green Monkey**/2010
Syng의 생각
syng's me2DAY/2010
천재 작곡가 윤일상이 기획,...
엘븐킹's Digital Factory/2010
인디(Indy 10)에서 FTP Connection이 안되는 경우의 해결방법.
Delphi | 2007/11/22 10:29

델파이에서 널리 사용되는 컴퍼넌트인 Indy...

그동안 Indy9를 사용하다가, 사내 프로젝트를 수행하면서 다른 팀원들이 이미 Indy10으로 진행을 하고 있어서 어쩔 수 없이 나도 Indy10으로의 전향....

헌데 Indy10 FTP 컴퍼넌트를 이용하여 FTP Server에 업로드를 하는 경우에, 일부 FTP 서버에서 Connect 부분에서 "Freeze" 현상이 발생하였다.

하여 소스를 디버깅 하던중에

IDFTP.PAS에서

  SendCmd('FEAT');  {do not localize}
  FCapabilities.Clear;
  {Capabilities.AddStrings( LastCmdResult.Text );
  //we remove the first and last lines because we only want the list
  if FCapabilities.Count > 0 then
  begin
    FCapabilities.Delete(0);
  end;
  if FCapabilities.Count > 0 then
  begin
    FCapabilities.Delete( FCapabilities.Count -1 );
  end;

위의 부분이 Indy9와 다른점을 발견.... FTP Protocol인 "FEAT"명령어를 FTP Server에서 제대로 처리해주지 못해 발생하는 오류(?)인것으로 판단됐다.

FTP 서버를 Server-U를 사용하고 있고, 두개의  서버가 동일한 버전으로 운영되고 있음에도 불구하고, 한쪽은 되고 다른 한쪽은 오류가 나는 어처구니 없는 상황.....

telnet을 통해 FTP Command를 하나하나 날려보니 한쪽 FTP 서버에서는 "FEAT"명령어의 Response가 날아오지 않았고, Indy10 FTP 컴퍼넌트에서는 이때문에 프로그램이 얼어버리는 현상으로 비춰진 것이다.

정상적인 FTP 서버라면 아래와 같이 나와주어야 한다.

FEAT
211-Extension supported
 CLNT
 MDTM
 MDTM YYYYMMDDHHMMSS[+-TZ];filename
 SIZE
 SITE PSWD;EXEC;SET;INDEX;ZONE;CHMOD;MSG
 REST STREAM
 XCRC filename;start;end
 MODE Z
211 End

RFC 문서 링크 : http://incubator.apache.org/ftpserver/rfc2389.html

FEAT <CRLF> 

This command causes the FTP server to list all new FTP features that the server supports beyond those described in RFC 959. A typical example
reply to the FEAT command might be a multi-line reply of the form:



아무튼 FEAT 명령어 자체가 FTP Command의 새로운 커맨드 리스트를 보여주는 거 같고, 사실 난 FTP로 그다지 복잡한 기능을 수행하지 않기에, 해당부분을 주석처리하여 처리하였다.

혹시라도 Indy10으로 업그레이드 한 이후에 FTP 연결이 잘 되지 않는 사용자가 있다면 해당 부분을 주석처리한 후 사용하시기 바란다.

앞서 말한 코드에서 "FCapabilities.Clear;"를 제외한 모든 부분을 주석처리!!!!
 

2007/11/22 10:29 2007/11/22 10:29
Article tag list Go to top
View Comment 0
Trackback URL :: 이 글에는 트랙백을 보낼 수 없습니다
 
 
 
 
: [1] ... [644][645][646][647][648][649][650][651][652] ... [855] :
«   2021/10   »
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            
전체 (855)
출판 준비 (0)
My-Pro... (41)
사는 ... (492)
블로그... (22)
My Lib... (32)
게임 ... (23)
개발관... (3)
Smart ... (1)
Delphi (75)
C Builder (0)
Object... (0)
VC, MF... (9)
Window... (1)
Open API (3)
Visual... (0)
Java, JSP (2)
ASP.NET (0)
PHP (4)
Database (12)
리눅스 (28)
Windows (23)
Device... (1)
Embedded (1)
게임 ... (0)
Web Se... (2)
Web, S... (19)
잡다한... (5)
프로젝트 (0)
Personal (0)
대통령... (9)
Link (2)