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."
Знаю тема частая, но общего и внятного решения я так и не нашёл


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 ?


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

Наверх

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