FTP客户端可以控制FTP服务器超时设置吗?

问题描述 投票:0回答:2

我正在 Java 中使用 Apache Commons-Net

我想要的是在客户端阶段设置 FTP 服务器的连接超时 使用java代码

示例:

如果我查看 FTP 服务器的 vsftpd.conf 设置文件,

有一个

idle_session_timeout=600
设置

我想知道这个空闲超时是否可以通过FTP客户端使用java代码来控制

下面的方法,我尝试过但不是全部有效

FTPClient.setControlKeepAliveTimeout(sec);
FTPClient.setConnectTimeout(ms);
FTPClient.setDataTimeout(ms);
FTPClient.connect();
FTPClient.setSoTimeout(ms);

请帮助我:)

java ftp apache-commons-net
2个回答
6
投票

FTP客户端无法控制FTP服务器的设置。

但是你所问的看起来更像是一个XY问题,其中X可能是你想要阻止服务器关闭空闲连接,Y是你想出的解决方案的想法:从客户端控制服务器超时边。只是,这个解决方案行不通。

相反,您需要解决服务器关闭连接的真正原因:因为客户端没有活动。这个问题可以简单地通过客户端与服务器交互来解决。这种方式甚至被记录下来。引用:

您应该记住,如果客户端空闲时间超过给定时间段(通常为 900 秒),FTP 服务器可能会选择提前关闭连接。 ...您可以通过定期向服务器发送 NOOP 命令来避免在客户端空闲时服务器断开连接


0
投票

我使用WireShark查看setControlKeepAliveTimeout()的配置是否有效,发现只有在ftp上传或下载文件时才有效

© www.soinside.com 2019 - 2024. All rights reserved.