Конференция "Сети" » FTP на чистых сокетах
 
  • Виталий (04.11.13 20:53) [0]
    Доброго всем времени суток. Объясните мне пожалуйста стратегию взаимодействия с сервером FTP на уровне сокетов.
    Я связываюсь с сервером, авторизируюсь посредством посыла USER и PASS. Получаю порт данных командой PASV.
    А дальше? Допустим я хочу получить файл.
    Я должен установить прослушку на этот порт, а саму RETR послать через изначальное соединение?
    Или я в порт данных посылаю RETR и из этого же порта принимаю тело файла?
    Как правильно действовать? Есть ли статьи где более менее описана работа FTP желательно на русском на уровне сокетов?
  • DVM © (04.11.13 21:17) [1]

    > Есть ли статьи где более менее описана работа FTP

    ну в RFC все вобщем то написано http://www.ietf.org/rfc/rfc959.txt
    Только не на русском.


    > А дальше? Допустим я хочу получить файл.
    > Я должен установить прослушку на этот порт

    ты же в пассивном режиме, ты не открываешь никаких портов на прослушивание, ты шлешь команды серверу.

    FTP использует 2 соединения, одно для команд, другое для данных. Ты должен установить соединение для данных с сервером по указанному порту.
  • Виталий (04.11.13 21:28) [2]
    С аглицким беда. Ну да ладно.
    Принцип в данном случае ясен.
    Второй вопрос: После передачи в порт данных (или после получения) обязательно закрывать канал данных?
    Если я получаю от сервера данные предположим я знаю когда они закончат поступать, а если передавать данные? Как правильно сказать серверу что я закончил? Закрыть сокет?
    Если да то получается для каждого сеанса связи для приема\передачи данных мне нужно открывать-принимать\передавать-закрывать сокет данных?
  • DVM © (04.11.13 21:53) [3]

    > Второй вопрос: После передачи в порт данных (или после получения)
    > обязательно закрывать канал данных?

    да


    > Если я получаю от сервера данные предположим я знаю когда
    > они закончат поступать, а если передавать данные? Как правильно
    > сказать серверу что я закончил? Закрыть сокет?

    да


    > Если да то получается для каждого сеанса связи для приема\передачи
    > данных мне нужно открывать-принимать\передавать-закрывать
    > сокет данных?

    да
  • Виталий (04.11.13 22:16) [4]
    Такс. Ну кажется пока что все понятно. Вроде бы даже и получается кое-что.
    Спасибо за разъяснения.
 
Конференция "Сети" » FTP на чистых сокетах
Есть новые Нет новых   [118461   +17][b:0][p:0]