Я использую apache commons net FTPSClient для подключения к локальному ftp (пассивный режим). Связь зависает после
> LIST
< 150 Opening ASCII mode data connection for /bin/ls.
Я добавил запись в класс FTPClient, чтобы увидеть, где именно он завис. Он находится в этом методе: http://grepcode.com/file/repo1.maven.org/maven2 /commons-net/commons-net/3.3/org/apache/commons/net/ftp/FTPClient.java#FTPClient.initiateListParsing%28org.apache.commons.net.ftp.FTPFileEntryParser%2Cjava.lang.String%29 а>
Создается сокет, и socket.isBound () возвращает true, как и socket.isConnected (), в то время как socket.isInputShutDown () возвращает false. Все кажется хорошо, пока ftp-клиент действительно не попытается прочитать из входящего потока, это зависает на неопределенное время без получения каких-либо данных. Wireshark не подходит из-за использования SSL.
На данный момент (из-за состояния сокета) я исключил проблемы с брандмауэром, но не понимаю, что могло вызвать зависание. Я предполагаю, что это серверная часть, и я могу поговорить с людьми, которые ее запускают, но было бы полезно, если бы я мог сказать им, где искать.
ОБНОВЛЕНИЕ
Я был бы признателен за объяснение, если за вопрос проголосовали против или за закрытие ... Мне кажется, что это идеальный вопрос о стеке.