Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ftp apache setDefaultimeout()、setSoTimeout()和setDataTimeout()之间的差异_Java_Apache_Ftp_Timeout - Fatal编程技术网

Java ftp apache setDefaultimeout()、setSoTimeout()和setDataTimeout()之间的差异

Java ftp apache setDefaultimeout()、setSoTimeout()和setDataTimeout()之间的差异,java,apache,ftp,timeout,Java,Apache,Ftp,Timeout,下面的博客解释了ftp apache Commons net libaray的不同超时,即setDefaultTimeout()、setSoTimeout()、setDataTimeout() 但请澄清我对上述暂停的以下疑问 a) setSoTimeout()是否仅为ftp控制连接而不是数据连接设置超时 b) setDataTimeout()是否只为ftp数据连接设置超时,而不为控制连接设置超时?(我这样问是因为它使用底层的java.net.Socket.setSoTimeout() c) 如

下面的博客解释了ftp apache Commons net libaray的不同超时,即setDefaultTimeout()、setSoTimeout()、setDataTimeout()

但请澄清我对上述暂停的以下疑问

a) setSoTimeout()是否仅为ftp控制连接而不是数据连接设置超时

b) setDataTimeout()是否只为ftp数据连接设置超时,而不为控制连接设置超时?(我这样问是因为它使用底层的java.net.Socket.setSoTimeout()

c) 如果我们设置了setDefaultTimeout(),那么我们就不需要设置/使用setSoTimeout()和setDataTimeout()?因为博客上说“setDefaultTimeout()是使用此FTPClient实例建立的所有连接的默认值。”

d) 我们还需要设置连接超时吗?如果我们不设置它,程序会依赖于操作系统连接超时吗


提前感谢:)

这三种方法都会在套接字级别触发对setSoTimeout()的调用

setDefaultTimeout()在连接之前被调用,并将超时值传递给socket.setSortimeout(),以用于将来的所有控制连接。默认值为0,表示无限超时。FTPClient.setSoTimeout()在建立连接作为对当前套接字的覆盖后使用,因此超时设置仅适用于当前控制连接套接字

setDataTimeout()设置从数据连接读取的超时。查看代码,值0本质上是默认值(无限等待)

只有在需要与默认超时(无限)不同的内容时,才需要调用这些方法

我通过阅读文档和检查源代码确定了这一切,因此如果有人认为我所说的有问题,请纠正我