Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

FTP-сервер не открывает сокет [XP]


Страницы:   1 2 3

Владимир777 ©   (2012-08-19 18:41:00) 

1. Пишу простенький ftp-клиент c использованием компонента ClientSocket.
2. Тестирую в Filezilla Server, на локалке.
3. Последовательность действий:
   открываю сокет для команд (порт -21).
   отправляю логин, пароль. Получаю положительные ответы.
   отправляю команду PORT (порт 20) для активного подключения.
   получаю ответ: 200 Port command successful
   отправляю команду LIST и в окне сервера получаю:
   "150 Opening data channel for directory list.
     425 Can't open data connection."
Знаю тема частая, но общего и внятного решения я так и не нашёл


Владимир777   (2012-08-20 22:41:00) [21]

Последовательность действий:
открываю сокет для команд (порт -1025).
отправляю логин, пароль. Получаю положительные ответы.
отправляю команду PASV для пассивного подключения.
получаю ответ: 227 Entering Passive Mode (127,0,0,1,4,22)
открываю сокет для данных (порт 1026)
отправляю команду LIST
в окне Filezilla Server на короткое время в колонке transfer напротив
моего подключения (на командном сокете) появляется рисунок папки
после её исчезновения в окне сервера получаю:
"425 Can't open data connection."


brother   (2012-08-20 21:22:00) [22]

думаю автор с [10] уже ознакомился?


Dennis I. Komarov   (2012-08-20 21:08:00) [23]


> ты уж определись наконец какой режим тебе нужен) ..

хорошо бы еще знать, чем они отличаются...


Сергей М.   (2012-08-20 11:42:00) [24]

Заметался, бедняга)

То


> отправляю команду PORT (порт 20) для активногоподключения


то


> отправляю команду PASV (порт 20) для пассивногоподключения


ты уж определись наконец какойрежим тебе нужен) ..


brother   (2012-08-20 07:26:00) [25]

[20] баян!


Владимир777   (2012-08-20 06:38:00) [26]

Palladin, а можно по-понятней?


Palladin   (2012-08-19 23:34:00) [27]

ОНО: народ, я новый нюк нашел, ща всех поубиваю!!!
ОНО: дайте ай-пи какого-нить лоха!!!
Кто-то: 127.0.0.1
ОНО: пасиба!
ОНО: щас он подохнет
* ОНО вышло из чата


Владимир777   (2012-08-19 23:00:00) [28]

"используются клиентом для открытия потока данных с произвольного клиентского порта к полученному адресу и порту." - а как это сделать?

получаю ответ: 227 Entering Passive Mode (127,0,0,1,4,22)
значит, полученный адрес - 127,0,0,1, порт  - 1046 (4*256+22)
Теперь надо открыть сокет данных?


Dennis I. Komarov   (2012-08-19 21:33:00) [29]


>  Моё незнание теории - дело другое.

Хочешь писать протоколы вручную - учи спецификации...


Медвежонок Пятачок   (2012-08-19 20:53:00) [30]

..... может быть использован пассивный режим. В этом режиме клиент использует поток управления, чтобы послать серверу команду PASV, и затем получаетот сервераего IP-адрес и номер порта, которые затем используются клиентом для открытия потока данныхс произвольного клиентского порта к полученному адресу и порту.

http://ru.wikipedia.org/wiki/FTP


Владимир777   (2012-08-19 20:52:00) [31]

Извините, описка: отправляю команду PASV для пассивного подключения.

Медвежонок Пятачок, не обязательно демонстрировать свой идиотизм на форуме. Моё незнание теории - дело другое.


Медвежонок Пятачок   (2012-08-19 20:46:00) [32]

отправляю команду PASV (порт 20) для пассивного подключения.
открываю сокет для данных (порт 1046 (4*256+22))


....дятел оборудован клювом.


Владимир777   (2012-08-19 20:38:00) [33]

Переписал:
Последовательность действий:
   открываю сокет для команд (порт -1025).
   отправляю логин, пароль. Получаю положительные ответы.
   отправляю команду PASV (порт 20) для пассивного подключения.
   получаю ответ: 227 Entering Passive Mode (127,0,0,1,4,22)
   открываю сокет для данных (порт 1046 (4*256+22))
   отправляю команду LIST
   в окне Filezilla Server  на короткое время в колонке transfer напротив  
   моего    подключения (на командном сокете) появляется рисунок папки
   после её исчезновения в окне сервера получаю:
   "425 Can't open data connection."


Inovet   (2012-08-19 20:35:00) [34]

> [12] Владимир777   (19.08.12 20:32)
> Dennis I. Komarov, что это такое?

http://www.google.ru/#hl=ru&gs_nf=1&cp=13&gs_id=b&xhr=t&q=RFC+959%2C+2577&pf=p&newwindow=1&output=search&sclient=psy-ab&oq=RFC+959,+2577&gs_l=&pbx=1&bav=on.2,or.r_gc.r_pw.r_qf.&fp=560735a0f168c942&biw=1153&bih=81 4


Владимир777   (2012-08-19 20:32:00) [35]

Dennis I. Komarov, что это такое?


Dennis I. Komarov   (2012-08-19 20:23:00) [36]

RFC 959, 2577


Сергей М.   (2012-08-19 19:37:00) [37]


> Владимир777   (19.08.12 19:34) [8]


Ну тогда открой для себя америку:

http://asweb.ru/notes/miscellaneous/ftpmodes/


Медвежонок Пятачок   (2012-08-19 19:35:00) [38]

ну значит нехрен и браться


Владимир777   (2012-08-19 19:34:00) [39]

Сергей М. я не читал о том, что для подключения в активном режиме ftp-клиенту нужен компонент ServerSocket. А не читал, потому что нигде не встречал такой информации.


Медвежонок Пятачок   (2012-08-19 19:34:00) [40]

чтобы сервер открыл дата-порт, нужно попросить сервер перейти в пассив режим.

а перед тем как писать своего фтп клиента, нехило было бы изучить сам фтп протокол


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо