![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
FTP-сервер не открывает сокет [XP]
Владимир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."
Знаю тема частая, но общего и внятного решения я так и не нашёл
Amoeba_ (2012-08-23 18:54:00) [1]
> Владимир777 (23.08.12 17:49) [45]
>
> Да пошли Вы все...
Ну зачем так резко ...
Cходи со своей проблемой (с учетом всего вышесказанного) на www.delphikingdom.com
Там не ерничают, если сам с дуру не спровоцируешь.
Владимир777 (2012-08-23 17:49:00) [2]Да пошли Вы все...
Dennis I. Komarov (2012-08-22 21:04:00) [3]
> Да не хочет он читать.
> Он писАть хочет)
...тернист и колюч, а сдавать надо
Anatoly Podgoretsky (2012-08-22 20:37:00) [4]> Сергей М. (22.08.2012 20:23:42) [42]
Чукча не читатель.
Сергей М. (2012-08-22 20:23:00) [5]
> Dennis I. Komarov © (22.08.12 19:43) [41]
Да не хочет он читать.
Он писАть хочет)
Dennis I. Komarov (2012-08-22 19:43:00) [6]
> Какой же он Local, если этот порт открывает серверная сторона,
> которая по отношению к клиенту Remote ?
Пусть сперва теорию почитает... в голове такая каша... особенно касательно режимо - кто где клиент, а кто где сервер...
Сергей М. (2012-08-22 10:08:00) [7]
> CiientwinSocket. LocalPort=1046
Какой же он Local, если этот порт открывает серверная сторона, которая по отношению к клиенту Remote?
Владимир777 (2012-08-22 00:11:00) [8]CiientwinSocket.LocalPort=1046
Dennis I. Komarov (2012-08-21 22:46:00) [9]
> Задание на лабу
тогда, только грызть теорию...
Владимир777 (2012-08-21 22:08:00) [10]Задание на лабу
Dennis I. Komarov (2012-08-21 22:04:00) [11]
> Владимир777 (21.08.12 21:50) [35]
> Dennis I. Komarov, если бы нашёл готовое решение (ftp-клиент
> на ClientSocket-е), то не просил бы помощи.
> Как законнектится с одного порта на другой?
А чем обусловлено условие "ftp-клиент на ClientSocket-е"? Без обид, ну не хватает знаний...
Владимир777 (2012-08-21 21:50:00) [12]Dennis I. Komarov, если бы нашёл готовое решение (ftp-клиент на ClientSocket-е), то не просил бы помощи.
Как законнектится с одного порта на другой?
Dennis I. Komarov (2012-08-21 19:39:00) [13]
> Владимир777 (21.08.12 18:19) [33]
>
> А как это сделать, Сергей М.?
> Присваиваю:
> сокет для данных (Port=1026), Host= 127.0.0.1
> Открываю сокет и всё, или как-то изменить адрес, или host?
>
возьми готовое решение...
Владимир777 (2012-08-21 18:19:00) [14]
> > открываю сокет для данных (порт 1026) И где самый важный
> шаг на этапе создания канала данных в пассивном режиме -
> коннект клиента с порта 1026 к серверу на порт 1046 ?
А как это сделать, Сергей М.?
Присваиваю:
сокет для данных (Port=1026), Host= 127.0.0.1
Открываю сокет и всё, или как-то изменить адрес, или host?
Сергей М. (2012-08-21 12:33:00) [15]
> Anatoly Podgoretsky © (21.08.12 12:23) [31]
Толя, ты не выспался что ли ?)
Где я "хекс" применяю ?
4 - дес. значение ст.байта 16-разрядного дв.слова номера порта.
Двигаем его влево на 8 двоичных разрядов, что эквивалентно умножению на 256 (dec) -> получаем 1024 (dec)
К 1024 (dec) прибавляем 22 (dec) (значение мл.байта 16-разрядного дв.слова номера порта) -> получаем 1046 (dec)
Anatoly Podgoretsky (2012-08-21 12:23:00) [16]> Сергей М. (21.08.2012 12:09:30) [30]
Тогда дело хуже, зачем применяешь хекс при умножение 4 на 256, инаече у тебя
бы не получилось 1024+, умножай тогда на 100/1000.
Сергей М. (2012-08-21 12:09:00) [17]
> Anatoly Podgoretsky © (21.08.12 11:53) [29]
Не, теперь врешь ты - октеты номера порта сервер передает в десятичном виде.
А 1058 - это если бы 4,22 были в hex.
Anatoly Podgoretsky (2012-08-21 11:53:00) [18]> Сергей М. (21.08.2012 11:04:28) [28]
Опять врешь, на 1058
Сергей М. (2012-08-21 11:04:00) [19]
> на порт 22
Вру, не на 22, а на 1046 (4 shl 8 + 22)
Сергей М. (2012-08-21 10:59:00) [20]
> открываю сокет для данных (порт 1026)
И где самый важный шаг на этапе создания канала данных в пассивном режиме - коннект клиента с порта 1026 к серверу на порт 22 ?