Mic*_*man 5 java apache ftp timeout
以下博客解释了 ftp apache commens net libaray 的不同超时,即 setDefaultTimeout()、setSoTimeout()、setDataTimeout()。
http://sudhirvn.blogspot.in/2007/05/ftpclient-timeout-values.html
但是请澄清我的以下疑问 WRT 上述超时?
a) setSoTimeout() 是否仅为 ftp 控制连接而不是数据连接设置超时?
b) setDataTimeout() 是否仅为 ftp 数据连接而不是控制连接设置超时?(我问这个是因为它使用底层 java.net.Socket.setSoTimeout() )
c) 如果我们设置 setDefaultTimeout() ,那么我们就不需要设置/使用 setSoTimeout() 和 setDataTimeout() ?因为博客说'setDefaultTimeout() 默认用于使用这个 FTPClient 实例建立的所有连接。
d)我们还需要设置连接超时吗?如果我们不设置它,程序会依赖操作系统连接超时吗?
提前致谢 :)
这三个方法都在套接字级别触发对 setSoTimeout() 的调用。
setDefaultTimeout()在连接之前被调用,并将超时值传递给 socket.setSoTimeout() 以用于所有未来的控制连接。默认值为 0,表示无限超时。FTPClient.setSoTimeout()在建立连接后用作当前套接字 SO_TIMEOUT 设置的覆盖,并且仅适用于当前控制连接套接字。
setDataTimeout() 设置从数据连接读取的超时时间。查看代码,值 0 本质上是默认值(无限等待)。
如果您想要与默认超时(无限)不同的东西,您只会想要调用这些方法。
我通过阅读文档和检查源代码确定了这一切,所以如果有人发现我说的有问题,请纠正我。
| 归档时间: |
|
| 查看次数: |
3503 次 |
| 最近记录: |