TidFTP 구성 요소를 사용하는 데 문제가 있습니다.원격 FTP에서 파일 목록 다운로드
나는 (이 정확히 778 요소가 있습니다)을 StringList에서 여러 파일을받은 후이
vFileList := TStringList.Create;
oClientFTP := TidFTP.Create(nil);
oClientFTP.Port := PortFTP;
oClientFTP.Host := IPHost;
oClientFTP.UserName := UserFTP;
oClientFTP.Password := PasswordFTP;
같은 코드를 사용하여 서버에 연결할 수있을 때 요소 없음. 137가 검색되면 EIdAcceptTimeout이 "Accept timed out"으로 발생합니다. 메시지.
내가 (그런데 스레드에서 실행)이처럼 실행 코드
procedure TDownloadFTP.Get;
begin
try
for I := 0 to vFileList .Count - 1 do
begin
sFileName:= vFileList [I];
posPoint := LastDelimiter('.', sFileName);
if posPoint = 0 then
ForceDirectories(ExtractFilePath(Application.ExeName) + '/BackUp/' + sFileName)
else
try
oClienteFTP.Get(sFileName,IncludeTrailingPathDelimiter(ExtractFilePath(Application.ExeName) + '/BackUp/') + sFileName, True);
except
on E: EIdReplyRFCError do
begin
end;
on E: Exception do
exceptionList.Add(sFileName);
end;
end;
예외 후, 파일이 제대로 다운로드하지만 프로세스는 (난 파일 당 25초처럼 필요 2KB png 이미지 다운로드).
이 예외의 의미에 대해 알고 싶습니다.
감사 인디 포럼이 토론 EIdAcceptTimeout
리드에 대한 인터넷 검색을
시간 초과는 TCP/IP 네트워킹의 표준 개념입니다. TCP 시간 초과가 무엇인지 정말로 묻고 있습니까? FTP 연결의 컨텍스트에서 ACCEPT는 서버 측에서 되돌아 오는 것으로 가정되며 그렇지 않습니다. 지금해야 할 일은 당신에게 달려 있습니다. 모든 것을 중단하고 파일을 건너 뛰고 다음 파일을 가져오고 해당 파일을 3 번 다시 시도한 후 다음 파일로 이동하십시오. 당신이 결정합니다. 이 FTP 구성 요소는 파일 전송 솔루션의 한 단계에 불과하며 네트워크에 장애가 발생했을 때 수행 할 작업을 결정하지 않습니다. 항상 수행 할 수 있습니다. –