当前位置 : 主页 > 编程语言 > delphi >

delphi – IdFtp.List偶尔抛出socket错误#10054

来源:互联网 收集:自由互联 发布时间:2021-06-23
当我调用该函数时 IdFtp.List(myList, '', false); 之后我登录并更改了ftp目录,我得到了一个套接字错误#10054异常(“通过peer重置连接.”). 当我呼叫该功能时,例如连续20次我得到1次异常. 我在
当我调用该函数时

IdFtp.List(myList, '', false);

之后我登录并更改了ftp目录,我得到了一个套接字错误#10054异常(“通过peer重置连接.”).

当我呼叫该功能时,例如连续20次我得到1次异常.

我在Vista OS上遇到的那个问题.

有人知道问题是什么或我如何避免它?

您无法做到这一点,因为断开连接是由FTP服务器完成的.
你有几个选择:

>在FTP服务器连接设置上增加(或禁用)超时设置(每个FTP服务器都有不同的名称).
>通过定期发送NOOP命令告诉服务器您还活着(切换到被动模式也可以帮助).
>捕获该异常并以静默方式重新连接(这是我的首选解决方案,因为我们有许多FTP服务器,我不相信sys-admins更改FTP服务器超时设置).

以下是FileZilla FTP服务器超时设置的屏幕截图:

请注意,使用上述设置,FTP客户端将在非活动2分钟后断开连接.将该值设置为0将禁用超时.

网友评论