Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Устранение проблемы тайм-аута при подключении к FTP-серверу в Delphi

Delphi , Интернет и Сети , FTP

В данной статье мы рассмотрим проблему тайм-аута при подключении к FTP-серверу в Delphi и способы ее решения.

Пользователь столкнулся с проблемой, когда пытался получить файл с FTP-сервера при помощи кода на Delphi, но всякий раз получал ошибку:

EIdSocketError: Socket Error # 10060Connection timed out.

При этом, используя FileZilla 3.4, он мог успешно подключиться и загрузить файлы. Код, который он использовал, выглядел следующим образом:

var
  objFTP: TidFTP;
begin
  try
    objFTP := TIdFTP.Create;
    try
      objFTP.Disconnect;
      objFTP.Host := '200.1.81.252';
      objFTP.Port := 990;
      objFTP.Username := 'user_name';
      objFTP.Password := 'user_pass';
      objFTP.Passive := True;
      objFTP.IOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(objFTP);
      objFTP.UseTLS := utUseRequireTLS;
      objFTP.TransferTimeout := 120000;
      try
        objFTP.Connect;
        objFTP.ChangeDir('/salida/acciones/2015-05-20');
        objFTP.Get('SW052015.003', 'C:\SW052015.txt');
      finally
        objFTP.Disconnect;
      end;
    finally
      FreeAndNil(objFTP);
    end;
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
end;

Конфигурации на FileZilla:

  • Authentication port: 990
  • Data transfer port: 9080
  • Encryption: Required explicit FTP over TLS
  • Passive mode
  • Force UTF-8

Причины проблемы и решения

Причиной проблемы может быть брандмауэр, который блокирует сетевое подключение вашего приложения, в отличие от FileZilla. Чтобы проверить это, вы можете попробовать отключить брандмауэр или добавить исключение для вашего приложения в настройках брандмауэра.

Также, проблема может быть связана с настройками подключения к FTP-серверу. В данном случае, было предложено несколько решений:

  1. Убедитесь, что вы правильно настраиваете свойства TIdFTP перед подключением. В частности, убедитесь, что вы правильно настраиваете IOHandler, UseTLS и DataPortProtection.
  2. Попробуйте использовать utUseExplicitTLS вместо utUseRequireTLS.
  3. Если сервер требует encryption на данных, установите TIdFTP.DataPortProtection в ftpdpsPrivate.

После внесения этих изменений, пользователь смог успешно подключиться к FTP-серверу и загрузить файл. Обновленный код выглядит следующим образом:

var
  objFTP: TidFTP;
  sCaminho: String;
begin
  sCaminho := 'C:\SW052015.txt';
  SysUtils.DeleteFile(sCaminho);
  try
    objFTP := TIdFTP.Create;
    try
      objFTP.Host := '200.1.81.252';
      objFTP.Username := 'user_name';
      objFTP.Password := 'user_pass';
      objFTP.IOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(objFTP);
      objFTP.UseTLS := utUseExplicitTLS;
      objFTP.DataPortProtection := ftpdpsPrivate;
      try
        objFTP.Port := 990;
        objFTP.Passive := True;
        objFTP.Connect;
        objFTP.ChangeDir('/salida/acciones/2015-05-20');
        objFTP.Get('SW052015.003', sCaminho);
      finally
        objFTP.Disconnect;
      end;
    finally
      FreeAndNil(objFTP);
    end;
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
end;

Заключение

В данной статье мы рассмотрели проблему тайм-аута при подключении к FTP-серверу в Delphi и способы ее решения. Мы обсудили возможные причины проблемы и предложили несколько решений, которые помогли пользователю успешно подключиться к FTP-серверу и загрузить файл.

Создано по материалам из источника по ссылке.

В статье рассматривается проблема тайм-аута при подключении к FTP-серверу в Delphi и предлагаются способы ее решения.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: FTP ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-06-16 14:52:00/0.0050728321075439/1