Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.11.2015, 21:17   #1
rachina
Пользователь
 
Регистрация: 15.03.2015
Сообщений: 27
Печаль FTP. LIST. вывод результатов

доброго времени суток.
пытаюсь написать свой FTP-клиент.
Как вывести список файлов из директории?

отправил серверу команду LIST, и в ответ он выдал "ок. успешно".
использую активное соединение
Код:
ClientSocket1.Socket.SendText('LIST' + #13#10);
я так понимаю, что в ответ мне выдаётся поток.
но как вывести этот список файлов, допустим в мемо?
ну вообще никак не удаётся...

пытался вот что-то тут натворить, но не выходит. пытался тут что-то, но...
Код:
procedure TForm1.ServerSocket1ThreadStart(Sender: TObject;
  Thread: TServerClientThread);
  var FileStream: TFileStream;
begin
FileStream:= TFileStream.Create('qqq.txt', fmOpenRead);
 // FileStream.CopyFrom(Thread, Thread.Size);
 Thread.
  Memo1.Lines.Add('что-то передаётся поток');
end;
как вывести поток от сервера? подскажите, пожалуйста.
Код:
procedure TForm1.Button3Click(Sender: TObject);
//var FileStream: TFileStream;
begin
     ClientSocket1.Socket.SendText('TYPE I' + #13#10);
     ClientSocket1.Socket.SendText('SYST' + #13#10);
     ClientSocket1.Socket.SendText('CWD /' + #13#10);
     ClientSocket1.Socket.SendText('TYPE A' + #13#10);
     ClientSocket1.Socket.SendText('PWD' + #13#10);
     ServerSocket1.Open;
     ClientSocket1.Socket.SendText('PORT 127,0,0,1,194,50' + #13#10);   //  49714
     //ClientSocket1.Socket.SendText('LIST' + #13#10);
     //ClientSocket1.Socket.SendText('CWD /' + #13#10);
     //ClientSocket1.Socket.SendText('MKD qwerty' + #13#10);     //создание директории
     //ClientSocket1.Socket.SendText('PASV' + #13#10);
 
     //ClientSocket1.Socket.SendText('RETR qqq.txt' + #13#10);
end;
 
procedure TForm1.ServerSocket1ClientConnect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
    Memo1.Lines.Add('Есть контакт');
end;
 
procedure TForm1.Button2Click(Sender: TObject);
begin
   ClientSocket1.Socket.SendText('LIST' + #13#10);
end;
 
procedure TForm1.ServerSocket1ThreadStart(Sender: TObject;
  Thread: TServerClientThread);
  var FileStream: TFileStream;
begin
FileStream:= TFileStream.Create('qqq.txt', fmOpenRead);
 // FileStream.CopyFrom(Thread, Thread.Size);
 Thread.
  Memo1.Lines.Add('что-то передаётся поток');
end;
как вывести поток от сервера? подскажите, пожалуйста
чуть ниже прикрепляю сам проект на всякий случай
КлиентFTP.rar
rachina вне форума Ответить с цитированием
Старый 17.11.2015, 21:45   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
я так понимаю, что в ответ мне выдаётся поток.
Нет. Поток выдается в порт, который открыт для приема данных. В Командный порт выдается только результат операции - успешно или не очень.
Открывай еще один сокет, либо пассивным либо активным методом, и считывай то, что тебе сервер передаст уже из второго сокета.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод результатов таблиц Mansitto SQL, базы данных 3 25.03.2015 09:44
FTP.List Peshka5 Работа с сетью в Delphi 6 26.07.2014 19:05
FTP неоднозначные результаты LIST Stilet Свободное общение 6 07.11.2013 13:17
TIdFTP.List Сбрасывает подключение к FTP. sdsfy Работа с сетью в Delphi 0 21.03.2011 04:54
Вывод результатов! Серый Рыйцарь Помощь студентам 3 21.05.2009 07:46