FTP-соединение "зависает" на "LIST" - PullRequest
2 голосов
/ 08 сентября 2010

Все,

У меня проблема с удаленным ftp-сервером, который занимал меня три дня, и я схожу с ума по этому поводу.: (

Некоторое время назад я написал простой класс ftp retriever, который использует apache commons-net 2.0. Класс отлично работает на 5 различных ftp-серверах, я могу получать данные по своему усмотрению. Теперь я столкнулся ссервер, к которому мне нужно подключиться, просто не позволяет мне перечислять каталоги или получать данные.

Это порядок команд, которые отправляются и извлекаются моим классом:

220 (vsFTPd 2.0.1)
USER XXXXXXX
331 Please specify the password.
PASS XXXXXXX
230 Login successful
TYPE I
200 Switching to Binary mode.
PASV
227 Entering Passive Mode (XXX,XXX,XXX,XXX,XXX,XXX)
NLST
150 Here comes the directory listing.
226 Directory send OK.
SYST
215 UNIX Type: L8
PASV
227 Entering Passive Mode (XXX,XXX,XXX,XXX,XXX,XXX)
LIST
150 Here comes the directory listing.

В последней строке мой код зависает бесконечно (ну, я убил его после 2 часов ожидания, чтобы посмотреть, как долго он будет блокироваться). Я перепробовал все, от использования активного соединения до установки типа ASCII, до использования различных библиотек ftp- всегда с одним и тем же результатом.

Обычно я просто звоню ребятам и говорю им, что их сервер настроен неправильно, однако подключение через FileZilla не только работает, но работает молниеносно и никогда не вызывает никаких проблем., соединение через командную строку в Linux работает как шарм.

Я полностью потерян здесь. У кого-нибудь естьидеи, почему у меня есть эта проблема?

Ура

Ответы [ 2 ]

3 голосов
/ 09 сентября 2010

Я не могу поверить, что я потратил почти пять дней на это. После долгих сеансов отката изменений, фиксации промежуточных версий, отладки и примерно 15923 чашек кофе я наконец нашел причину всего этого беспорядка.

Оказывается, что - по любой причине - как только вы упаковываете xpp3 драйверы (как в XStream) в ваше ухо и развертываете это на JBoss 5.1, любое соединение через любые библиотеки ftp будет испорчено.

Я понятия не имею, вызвано ли это другими библиотеками, мешающими работе xpp3, или это сам xpp3. Честно говоря, мне было все равно, на данный момент. Все, что я знаю, это то, что как только я удалил эту зависимость из своего проекта, все заработало как шарм.

Черт возьми, xpp3 - я буду судиться с тобой за те десять лет моей жизни, которые ты мне стоил! :)

Спасибо всем за помощь, я сейчас иду домой ...

1 голос
/ 08 сентября 2010

Предложение: установите Wireshark на клиентском компьютере и отслеживайте сетевые трассировки как в рабочих (filezilla), так и в нерабочих условиях, чтобы увидеть, что отличаетсяЕсли вы работаете в Linux, используйте команду tcpdump для захвата пакетов, а затем используйте Wireshark для их проверки.

...