Java FTP客户端能否控制FTP服务器超时设置?

Java FTP客户端能否控制FTP服务器超时设置?,java,ftp,apache-commons-net,Java,Ftp,Apache Commons Net,我正在使用Java中的ApacheCommonsNet库 我想要的是在客户端阶段设置FTP服务器的连接超时 使用java代码 例如: 如果我查看FTP服务器的vsftpd.conf设置文件 存在空闲会话超时=600的设置 我想知道FTP客户端是否可以使用java代码控制这个空闲超时 下面的方法,我尝试过,但不是全部都有效 FTPClient.setControlKeepAliveTimeout(sec); FTPClient.setConnectTimeout(ms); FTPClient.se

我正在使用Java中的ApacheCommonsNet库

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

例如:

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

存在空闲会话超时=600的设置

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

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

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

请帮助我:

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

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

相反,您需要解决服务器关闭连接的真正原因:因为客户端没有任何活动。这个问题可以简单地通过客户端与服务器交互来解决。这条路是平坦的。引用:

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


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

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

相反,您需要解决服务器关闭连接的真正原因:因为客户端没有任何活动。这个问题可以简单地通过客户端与服务器交互来解决。这条路是平坦的。引用:

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


你希望通过这样做来实现什么?如果您想在任意空闲时间后关闭,那么可以设置一个计时器线程,您希望通过这样做实现什么?如果您想在任意空闲时间后关闭,则可能需要设置一个计时器线程文档显示noop命令通过setControlKeepAliveTimeout Sec方法发送到ftp服务器以避免空闲状态。但该方法无法正常工作。setControlKeepAliveTimeout在空闲时不保持连接活动。It服务器是在长时间传输期间关闭看似空闲的控制连接的路由器的一种解决方法:FTP服务器知道控制连接正在使用,因此不会因为缺少活动而关闭它,但网络路由器很难知道控制连接和数据连接是相互关联的。某些路由器可能会将控制连接视为空闲连接,如果通过数据连接进行传输所需的时间超过路由器允许的空闲时间,则会断开控制连接。如果要在真正空闲时保持连接处于活动状态,您需要定期显式调用sendNoOp。文档显示,noop命令通过setControlKeepAliveTimeout Sec方法发送到ftp服务器,以避免处于空闲状态。但该方法无法正常工作。setControlKeepAliveTimeout在空闲时不使连接保持活动状态。It服务器是在长时间传输期间关闭看似空闲的控制连接的路由器的一种解决方法:FTP服务器知道控制连接正在使用,因此不会因为缺少活动而关闭它,但网络路由器很难知道控制连接和数据连接是相互关联的。某些路由器可能会将控制连接视为空闲连接,如果通过数据连接进行的传输所花费的时间超过路由器允许的空闲时间,则会断开控制连接。如果要使连接保持活动状态,在真正空闲时,需要定期显式调用sendNoOp。