Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Интернет и сети
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 11.12.2015, 18:42
semen0000 semen0000 вне форума
Прохожий
 
Регистрация: 11.12.2015
Сообщения: 2
Версия Delphi: D7
Репутация: 10
По умолчанию FTP клиент

Добрый день, нужно написать ФТП клиент который может скачать файл с сервера, при этом не используя готовых компонентов(По типу IdFTP).
Столкнулся сразу же с проблемой, как получить ЛИСТ ?
И не могу понять логику получения файла с сервера.
Пока написал совсем немного:
Код:
procedure TForm1.clntsckt1Read(Sender: TObject; Socket: TCustomWinSocket);
begin
mmo1.Lines.Add(clntsckt1.Socket.ReceiveText());
end;

procedure TForm1.btn1Click(Sender: TObject);
begin
clntsckt1.Host:=edt1.Text;
clntsckt1.Port:=21;
clntsckt1.Open;
end;


procedure TForm1.btn2Click(Sender: TObject);
begin
clntsckt1.Socket.SendText('USER '+ edt2.Text + #13#10);
clntsckt1.Socket.SendText('PASS '+ edt3.Text + #13#10);
end;

procedure TForm1.btn3Click(Sender: TObject);
begin
 clntsckt1.Socket.SendText('CWD '+ '\' + #13#10);
end;

procedure TForm1.btn4Click(Sender: TObject);
begin
  portA := Random(179);
  portB := IntToStr(portA);
  clntsckt1.Socket.SendText('PORT '+ '127,0,0,1,8,'+ portB + #13#10);
  clntsckt1.Socket.SendText('LIST'+ #13#10);
end;

procedure TForm1.btn5Click(Sender: TObject);
begin
  clntsckt1.Socket.SendText('QUIT'+ #13#10);
end;
Ответить с цитированием
  #2  
Старый 11.12.2015, 18:51
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну, команду серверу ты послал.
А кто ответ читать будет.

ЗЫ. Не понятно, чем Indy не угодил. Это читсый дельфевый код, никаких сторонних библиотек, кроме системных, которые ты и так используешь, не требует.
Ответить с цитированием
  #3  
Старый 11.12.2015, 19:08
semen0000 semen0000 вне форума
Прохожий
 
Регистрация: 11.12.2015
Сообщения: 2
Версия Delphi: D7
Репутация: 10
По умолчанию

К сожалению задание получил от преподавателя, и потому когда я показал программу работающую на Инди, он меня просто послал прочь, нужно сделать всё именно так.

Прилагаю ответы сервера. Последние две строчки это ответ при запросе ЛИСТа. Как его обработать не понимаю. Пытался втулить и другие сокеты и сервер и клиент для того что бы получать ЛИСТ, но видимо делал это неправильно, не сработало.
Мне бы увидеть хоть кусок работающего кода, пытался расшифровывать IdFTP, очень много неясных для меня параметров, потому никак это не помогло в написании.

Последний раз редактировалось semen0000, 11.12.2015 в 19:11.
Ответить с цитированием
  #4  
Старый 11.12.2015, 20:46
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Для начала попробуй свои комманды из telnet'а посылать.
Что-то мне кажется, что PORT тебе не нужен для LIST.
Тебе надо TYPE.

Код:
TYPE A
LIST

PS. Кстати, вот РФЦ: https://www.ietf.org/rfc/rfc959.txt
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 00:59.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025