Вопрос по протоколу Ftp

Тема в разделе "Общие вопросы по С и С++", создана пользователем jema, 23 дек 2009.

  1. jema

    jema Гость

    Ребята, пишу здесь - так как тут все-таки люди повыше уровнем, и мой вопрос больше по протоколу чем по языку.

    Кто разбирается в FTP протоколе - прошу помощи!
    Проблема получить список файлов с сервера по ФТП
    Команда LIST может давать 2 ответа:
    125 Data Connection already open, transfer starting.
    и
    150 File status okay, about to open data connection. FTP uses two ports: 21 for sending commands, and 20 for sending data. A status code of 150 indicates that the server is about to open a new connection on port 20 to send some data.
    (это из документации).

    Так вот, есть FTP сервера которые отвечают 125, а есть которые отвечают 150
    Почему-то мой скрипт умеет работать только с теми - кто отвечает:
    150 Opening ASCII mode data connection for file list
    после этого я читаю данные из соединения для данных (открываю его заранее).
    Когда же я получаю от сервера:
    125 Data connection already open; Transfer starting.
    226 Transfer complete.

    Из соединенния для данных получаю пустой ответ.
    Проблемы вижу две:
    1) Почему сервер тут-же отвечает 226 Transfer complete. (все это получаю за один запрос ответа)
    2) Почему из соединения для данных ничего не могу прочитать?

    Отправка команд:
    Код (Text):
                if($Cmd) if(!@fputs($this->CmdSocket, $Cmd . "\r\n")) {$Error = 'Connect lost'; return false;}
    sleep(1);
    if(!$Error = trim(@fread($this->CmdSocket, 4096))) {$Error = 'No answer'; return false;}
    return substr($Error,0,3)
    Перед командой LIST создаю соединение на основании ответа команды PASV
    227 Entering Passive Mode (2хх,1хх,1хх,1хх,4,65).

    После ответ LIST
    125 Data connection already open; Transfer starting.
    226 Transfer complete.
    Пытаюсь читать - пусто.

    Думал, может сервер отдает, а скрипт не успевает прочитать.
    Пробовал перед LIST в отдельном потоке слушать порт - тишина - ничего нет.

    Куда копать??? Обычный ФТП-клиент нормально заходит на сервер =(
     
Загрузка...
Похожие Темы - Вопрос по протоколу
  1. ApplePen
    Ответов:
    0
    Просмотров:
    56
  2. gURaBA_N
    Ответов:
    3
    Просмотров:
    91
  3. kartaman
    Ответов:
    0
    Просмотров:
    126
  4. Peter
    Ответов:
    4
    Просмотров:
    519
  5. di0d_
    Ответов:
    1
    Просмотров:
    433

Поделиться этой страницей