Indy FTP EIAcceptTimeout 异常

2024-04-16

我正在测试 IndyFTP 将文件上传到服务器。这文件已上传但有 0 字节因为出现了 EIdAccessTimeout 异常 - 'Accept timed out'。我该如何防止该异常?我的代码是否不正确?代码如下所示:

procedure TForm1.FTPUpload1Click(Sender: TObject);
{ Indy FTP Upload. }
var
  iHost: string;
  iUsername: string;
  iPassword: string;
  iFolder: string;
  iSourceFile: string;
  iDestFile: string;
  iAppend: boolean;
  iStartPos: Int64;
begin
  iHost := FTPHost1.Text;
  iUsername := Username1.Text;
  iPassword := Password1.Text;
  iFolder := ServerFolder1.Text;
  if FileExists(SourceFile1.Text) then
    iSourceFile := SourceFile1.Text
  else
    Exit;
  if FileExists(SourceFile1.Text) then
    iDestFile := ExtractFileName(SourceFile1.Text)
  else
    Exit;
  iAppend := False;
  iStartPos := -1;
  IdFTP1.Host := iHost;
  IdFTP1.Username := iUsername;
  IdFTP1.Password := iPassword;
  IdFTP1.Connect;
  IdFTP1.TransferType := ftBinary;
  IdFTP1.Put(iSourceFile);
  IdFTP1.Disconnect;
end;

列出了一些未使用的变量,因为我刚刚学习并且还没有使用某些参数。


最有可能的是,您的 FTP 客户端设置为 ACTIVE 模式,因此此错误意味着成功登录 FTP 服务器后,无法建立“反向”连接(文件传输)。

在主动模式 FTP 中,客户端从随机非特权端口进行连接 (N > 1023) 到 FTP 服务器的命令端口,端口 21。然后,客户端 开始监听端口 N+1 并向端口 N+1 发送 FTP 命令 FTP 服务器。然后服务器将连接回客户端 从其本地数据端口指定数据端口,即端口 20。

主动 FTP 与被动 FTP,权威解释 http://slacksite.com/other/ftp.html

您可以通过以下方式设置为被动模式:

IdFTP1.Passive := True;

EDIT

此外,使用 try- except-finally 块,这样您就可以进行一些错误处理。就像是:

  try
    IdFTP1.Connect;
    try
      IdFTP1.Put(...);
    finally
      IdFTP1.Disconnect;
    end;
  except
    // couldn't connect
  end;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Indy FTP EIAcceptTimeout 异常 的相关文章

  • ClientDataset 索引更改时不计算 TAggregateField

    我正在使用连接到 DBGrid 的 TClientDataset 和几个聚合字段 用于计算其他几个浮点字段的总和 所有字段均已在设计时创建 一切都按预期工作 直到 ClientDataset 的 IndexName 使用自定义索引更改 以便
  • Firemonkey - 更新视觉组件

    我们从版本 1 开始就使用 Firemonkey 但仍然发现更新当前在屏幕上可见的组件很困难 在 Firemonkey 中请求重画的 方式 有很多 也许太多了 应用样式 ApplyStyle 事件 主要是当它在屏幕上可见时 请求 repai
  • 如何使用 Delphi Sydney 10.4.2 和 Edge Webbrowser 组件获取 HTML SOURCE

    I have TEdgeBrowser在德尔福 10 4 2 中 我想从 HTML 代码中提取基于 RegEx 的字符串 在过去 这是可能的TWebBrowser 仅适用于 IE 11 或更低版本 作为 selectedEngine 但我的
  • delphi分组框标题颜色变化

    我正在使用 BDS 2006 想知道您是否可以使用项目中存在的 XPmanifest 更改组框和单选按钮组标题的颜色 因为它始终是蓝色 唯一的方法是重写 Paint 方法TGroupBox http docwiki embarcadero
  • Winform 没有.NET 框架?

    我必须创建一些表单并将其作为直接 EXE 提供 而不是安装程序 它安装 NET 框架 最终用户对此不满意 他们想要可以直接打开和工作的东西 我知道它可以作为网络完成 但我正在寻找 winforms 吗 请建议哪种工具 技术可以处理这个问题
  • Delphi - 将物理路径(设备文件句柄)转换为虚拟路径

    我怎样才能转换像这样的路径 设备 HarddiskVolume3 Windows 进入其相应的虚拟路径 如本例中的 c Windows 我个人更喜欢原生方式 function GetHDDDevicesWithDOSPath TString
  • Delphi DataSnap REST 服务器从 TStream 返回 JSON 数组,而不是二进制

    我有一个与 Android 客户端通信的 REST 服务器 我将它从 XE3 ish 升级到 Berlin 其中一个服务器方法返回一个包含 jpeg 的 TStream 并且工作得很好 很高兴将图像作为二进制图像返回 升级到 Berlin
  • 如何将 JSON 字符串转换为图像?

    我有一个将图像转换为 JSON 数组的应用程序 并将其保存到 blob 字段中 function getImage String var memorystream TMemoryStream jsonArray TJSONArray beg
  • 以 png 格式剪辑幻灯片 (Delphi 2010)

    I have a filmstrip of images in png format like this 我想知道如何剪辑每个图像并将这些图像放入 TImageList 控件中 并始终保留透明度 EDIT 是的 在设计时 RRUZ 提到的技
  • 我需要避免尝试更新连接到 TSQLQuery 的 Delphi TClientDataset 中的非物理字段

    概要 我的代码正在尝试更新 Delphi XE 中的非物理字段TClientDataset 连接到TSQLQuery以其SQL属性集 作为运行时的结果创建Open命令 我有一个TClientDataset连接到一个TDatasetProvi
  • Delphi中的抽象类

    我正在使用一个具有许多抽象类的组件套件 现在我想应用多态性 但在创建对象时收到错误抽象类 即使我不需要 我是否应该重写所有虚拟方法 有什么解决方法或解决方案吗 为了创建类的实例 您需要重写所有声明为虚拟抽象的方法 即使您不使用它们 如果您确
  • 如何追踪“地址 00000000”的访问违规

    我知道如何创建 map 文件来在错误消息包含实际地址时跟踪访问冲突错误 但是如果错误消息说怎么办 Access violation at address 00000000 Read of address 00000000 我从哪里开始寻找这
  • 在 Delphi 2007 中将具有透明度的位图保存为 PNG

    我有一个包含透明度信息的 Delphi 位图 32 位 我需要将其转换并保存为 PNG 文件 同时保留透明度 我目前拥有的工具是graphics32 Library GR32 PNG 由Christian Budde 提供 和PNGImag
  • DELPHI 和 WANT 或 NANT

    We use 巡航控制 net http confluence public thoughtworks org display CCNET Welcome to CruiseControl NET在 Delphi 2006 应用程序中进行持
  • 如何将数据库查询的行转换为 XML 文件?

    我正在开发一个 Delphi 应用程序 该应用程序需要从一段工作中获取行并将其转换为单个 XML 文件 以便上传到第三方 Web 服务 有没有可用的组件或库可以做到这一点 如果不是 那么构建 DB2XML 转换器的最佳代码方法是什么 我注意
  • 查找Delphi项目中的所有编译错误

    我正在对我的 Delphi 项目进行一些重构 我希望能够做出改变 然后看看all项目中因该更改而中断的地方 类似于 Eclipse 列出项目的所有编译错误 在 Java 中 在 Delphi 中 我可以进行更改 然后重新编译我的项目 但编译
  • 在Delphi 7中,为什么我可以给const赋值?

    我将一些 Delphi 代码从一个项目复制到另一个项目 发现它在新项目中无法编译 但在旧项目中可以编译 代码看起来像这样 procedure TForm1 CalculateGP const Price money 0 begin Pric
  • 调试器异常错误和内存超调

    我尝试运行以下代码 但它显示有关内存地址的错误 并显示一条消息 循环后 n 可能未定义 请看一看 var n max integer n integer r R1 f h0 Array of Real const h 0 00889 nip
  • 是否可以声明长度受限且不从 0/1 开始的字符串类型?

    在 Delphi 中 可以声明整数值的子范围 例如 type myInt 2 150 它将 myInt 类型的值限制为 2 到 150 之间的值 但是如果我想限制字符串的长度怎么办 如果我写 type myString string 150
  • 如何使用 Gmail 的 SMTP 和 Indy 10 发送电子邮件?

    我正在使用 Delphi 2009 和 svn 中最新的 Indy 10 通过 SMTP 发送电子邮件 但它不适用于 Gmail Google Apps 托管域 当我尝试发送电子邮件时 我收到 必须首先发出 STARTTLS 命令 我尝试用

随机推荐

  • 如何将 .net core wwwroot 文件存储在 azure blob 中而不将其分离到另一个项目中?

    我不知道有任何 azure Visual Studio 工具可以跟踪 wwwroot 文件夹中的更改并更新相关的 blob 存储容器 或任何其他选项 我不确定这是否可以成为发布配置文件配置或任务列表窗口的一部分 我不熟悉 powershel
  • 动态更改 app.config 文件中的值

    我想修改 app config 中 appSetting 部分的值 所以我写道 Console WriteLine ConfigurationManager AppSettings name Console Read Configurati
  • 当 ng-model 为 null 时在 select 中设置默认值

    我是角度新手 我正在尝试设置默认状态以在我的 ng model 为空时进行选择 基本上 如果模型为空 我想将其设置为 无 我尝试了下面的代码 但它不起作用
  • Android:如何禁用 FEATURE_NO_TITLE

    我希望我的 Android 应用程序的行为如下 1 纵向模式 带标题栏 2 横向模式 无标题栏 因为高度限制 我知道我可以实现 1 使用 requestWindowFeature Window FEATURE NO TITLE 但是 当我旋
  • 正则表达式:如何排除多个字符组?

    我有一组网址 产品 类别 顾客 现在假设客户名为 john 我想帮助 john 使用较短的 url 访问他自己的帐户页面 before customers john after john 假设客户名称是唯一的 我正在尝试找出一个合适的正则表
  • DDD 领域模型复杂验证

    我正在努力使用域驱动设计原则重写我的 ASP NET MVC 应用程序 我正在尝试验证我的用户实体 到目前为止 我能够验证基本规则 例如用户名和密码是非空 空白字符串 然而规则之一是 我需要确保用户名是唯一的 但是 我需要访问数据库才能执行
  • 当 AVQueuePlayer 完成最后一个播放器项目时如何执行某些操作

    我有一个 AVQueuePlayer 它是由 4 个 AVPlayerItems 组成的数组创建的 并且一切都运行良好 当队列中的最后一项完成播放时 我想做点什么 我在这里查看了很多答案 这是看起来最有希望实现我想要的答案 声音播放完毕后执
  • Scala 泛型 - 为什么我无法在泛型类中创建参数化对象?

    我目前正在学习scala 为什么此代码不起作用 class GenClass T var d T var elems List T Nil def dosom x T var y new T y 我得到 错误 需要类类型 但找到了 T 代替
  • 如何使用 aws API Gateway 从另一个模型引用一个模型

    假设我有一个模型 Pet type object properties name type integer age type integer 还有另一个模型 Human type object properties name type in
  • 求数组中和的快速算法

    我正在寻找一种快速算法 我有一个大小为 n 的 int 数组 目标是找到数组中的所有模式x1 x2 x3 are different elements in the array such that x1 x2 x3 例如我知道有一个大小为
  • 在其事件处理程序中删除 FMX 对象

    我有以下组件 tncrdragdata tframedscrollbox tdragdata tgroupbox 主要思想是将它们组合起来并将它们用作列表框 我需要这样 该组框包含五个tedit 一个 tcombobox 和一个tbutto
  • 是否可以使用 Delphi 将 XML 发送和接收到 WSDL 函数?

    我们过去曾在 Delphi 中使用 Web 服务 这些服务很简单 参数很少 并向客户端返回单个值 我们工作的新服务应该能够输入 XML 并接收 XML 输出 有没有可以用于此目的的组件 当我尝试使用如下所示的方法时 出现错误 SearchA
  • 将对象传递给新表单

    我想做这样的事情 主要表格 Car car new Car create new object Form form2 new Form car Create new form and pass the car that I ve creat
  • 源地图请求导致 404 错误

    更新到 Chrome 29 后 我注意到浏览器尝试从应用程序根目录获取 jquery min map 但在从资产收到之前提出请求 小名声不允许我发布屏幕图像进行校对 当然 我可以在浏览器设置中关闭源映射 如下所示question https
  • LdapConnection SearchRequest 抛出对象不存在错误

    我正在尝试查询 LDAP 服务器以查找 LDAP 用户并将其导入到我的系统中 但是 当我尝试执行此操作时 请求会抛出DirectoryOperationException 说The object does not exist ldapCon
  • 如何使用纯 GDI 对画布区域进行颜色混合(按指定的 alpha 值着色)?

    我想使用纯颜色混合画布区域 按指定的 alpha 值着色 Windows GDI http msdn microsoft com en us library dd145203 28v vs 85 29 aspx 因此没有 GDI Direc
  • PowerShell 脚本将文件(但不包括子文件夹)复制到 SFTP,并在完成后移动到子文件夹

    我正在使用以下脚本将文件从本地文件夹复制到 SFTP 上传文件后 我想将文件移动到子文件夹中 我只想上传以下文件C Users Administrator Desktop ftp文件夹 而不是其他子文件夹中的文件 param backupP
  • 如何防止模型无效?

    我是最佳实践的坚定倡导者 尤其是在角度方面 但我无法使用全新的 validators管道功能应有的样子 情况非常简单 1 个输入通过指令增强 使用 parser formatter还有一些 validators
  • 计数累计和

    我想知道是否可以对计数进行累积和 我想举的一个例子是今年影响美国的风暴 我想要一个列出 2014 年月份的结果集 以及该月之前影响美国的风暴累计总数 我希望得到 3 列的内容 Month NumberofStorms 和 Cumulativ
  • Indy FTP EIAcceptTimeout 异常

    我正在测试 IndyFTP 将文件上传到服务器 这文件已上传但有 0 字节因为出现了 EIdAccessTimeout 异常 Accept timed out 我该如何防止该异常 我的代码是否不正确 代码如下所示 procedure TFo