当我调用函数时
IdFtp.List(myList, '', false);
之后我登录并更改了 ftp 目录,我偶尔会收到一个 socket-error #10054 异常(“Connection reset by peer.”)。
当我连续调用该函数例如 20 次时,我得到该异常 1 次。
我只在 Vista OS 上遇到过这个问题。
有谁知道问题是什么或我如何避免它?
您对此无能为力,因为断开连接是由 FTP 服务器完成的。你有几个选择:
NOOP
(切换到被动模式也有帮助)。这是FileZilla
FTP 服务器超时设置的屏幕截图:
请注意,使用上述设置,FTP 客户端将在 2 分钟不活动后断开连接。
将该值设置为 0,将禁用超时。
FTP 协议使用多个套接字连接。每次调用时List()
,都会建立一个新的套接字连接来传输请求的列表数据。听起来 FTP 服务器并不总是在传输结束时正确关闭套接字。
在组件“IdFTP”中,更改以下属性: