Как установить тайм-аут чтения для управляющего соединения ftp

Я использую ftp apache commomns net version 3.1 .

Соединение ftp переходит в состояние зависания при прерывистом выполнении операции листинга.

Мне кажется, что причина в том, что ftp-клиент бесконечно ждет ответа сервера для команды FTP PASV при попытке открыть соединение для передачи данных для операции листинга.

Как мне нужно установить тайм-аут чтения на управляющем соединении, чтобы избежать этой ситуации.

Я установил readtimeout на подключение к данным с помощью setDataTimeout().

Для получения дополнительной информации: http://commons.apache.org/proper/commons-net/apidocs/org/apache/commons/net/ftp/FTPClient.html

1) Помогает ли установка setsoTimeout() после выполнения операции ftp connect() избежать этой ситуации на управляющем соединении?

Для получения дополнительной информации: http://commons.apache.org/proper/commons-net/apidocs/org/apache/commons/net/SocketClient.html

2) Если да, какое оптимальное значение тайм-аута мне нужно установить для setsotimeout()?

Пожалуйста, найдите трассировку стека ниже:

at java.net.SocketInputStream.socketRead0(Native Method)                 
at java.net.SocketInputStream.read(SocketInputStream.java:140)           
at sun.nio.cs.StreamDecoder$CharsetSD.readBytes(StreamDecoder.java:464)  
at sun.nio.cs.StreamDecoder$CharsetSD.implRead(StreamDecoder.java:506)   
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:234)                 
at java.io.InputStreamReader.read(InputStreamReader.java:188)            
at java.io.BufferedReader.fill(BufferedReader.java:147)                  
at java.io.BufferedReader.read(BufferedReader.java:168)                  
at org.apache.commons.net.io.CRLFLineReader.readLine(CRLFLineReader.java:58 
)                                                                        
at org.apache.commons.net.ftp.FTP.__getReply(FTP.java:310)               
at org.apache.commons.net.ftp.FTP.__getReply(FTP.java:290)               
at org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:479)              
at org.apache.commons.net.ftp.FTPClient.openDataConnection(FTPClient.java:7 
69)
at org.apache.commons.net.ftp.FTPClient.openDataConnection(FTPClient.java:6 
57) 
at org.apache.commons.net.ftp.FTPClient.initiateListParsing(FTPClient.java: 
3097) 
at org.apache.commons.net.ftp.FTPClient.initiateListParsing(FTPClient.java: 
3072)
at org.apache.commons.net.ftp.FTPClient.initiateListParsing(FTPClient.java: 
2972

Любая помощь в этом будет оценена:)

Благодарю.

0 ответов

Другие вопросы по тегам