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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.10.2009, 21:26   #1
velikijmerlin
Пользователь
 
Аватар для velikijmerlin
 
Регистрация: 14.08.2009
Сообщений: 10
По умолчанию ошибка коннекта к ФТП...

Доброго времени суток!
пишу фтп клиентик... искал по форуму вроде бы как бы всё соответствует, но вот беда, когда проходит коннект, то в мне пишет что соединение есть, а сама прога выкидывает ошибку что конект не прошёл...

можете подсказать в чём трабла?

Код:
procedure TForm1.sBitBtn1Click(Sender: TObject);
begin

{çàïîëíåíû ëè ïîëÿ}

  if ((sEdit1.Text = '') and
     (sEdit2.Text = '') and
     (sEdit3.Text = ''))
  then begin
  ShowMessage('Ïðîâåðüòå ïðàâèëüíîñòü çàïîëíåíèÿ ôîðì!');
  end
  else begin //åñëè ïîëÿ çàïîëíåíû òî êîíåêòèìñÿ ïî íèì
    IdFTP1.Host:= sEdit1.text;
    IdFTP1.Password:= sEdit2.Text;
    IdFTP1.Port:= StrToInt(sEdit3.text);
    IdFTP1.Username:=sEdit4.Text;
    IdFTP1.Connect(true);
    IdFTP1.Login;
    IdFTP1.ChangeDir(sEdit5.text);
  end;

end;

procedure TForm1.sBitBtn2Click(Sender: TObject);
begin
close;
end;

procedure TForm1.IdFTP1Connected(Sender: TObject);
begin

if (true) then
  sMemo1.lines.Add('Ñîåäåíåíèå ñ ' + sEdit1.Text + ' ïðîèçîøëî óñïåøíî')
else begin
  sMemo1.lines.add('Ñîåäåíåíèå ñ ' + sEdit1.Text + ' ðàçîðâàíî! ïðîèçîøëà îøèáêà!');
end;

end;

procedure TForm1.sCheckBox1Click(Sender: TObject);
begin
 if sCheckBox1.Checked = true then begin
    sEdit4.Enabled:=true;
 end
 else begin
    sEdit4.Enabled:=false;
 end;
end;

end.
это мой код...
velikijmerlin вне форума Ответить с цитированием
Старый 17.10.2009, 05:10   #2
BaronTreep
Форумчанин
 
Регистрация: 29.05.2009
Сообщений: 320
По умолчанию

вот пример консольной сессии:
Код:

program ftp_client;

{$APPTYPE CONSOLE}

uses 
  SysUtils, NMFtp;

function connect(host, port, user, pass : string) : tnmftp;
var
  ftp : tnmftp;
begin
  if (host = '') then host := 'localhost';
  if (port = '') then port := '21';
  ftp          := tnmftp.create(nil);
  ftp.host     := host;
  ftp.port     := StrToInt(port);
  ftp.userid   := user;
  ftp.password := pass;
  ftp.connect;
  result := ftp;
end;

procedure disconect(ftp : tnmftp);
begin
  ftp.disconnect();
end;

var
  ftp : tnmftp;
  cmd : string;
begin
  ftp := connect('www.САЙТ.ru', '21', 'ИМЯ', 'ПАРОЛЬ');
  while true do begin
    write('-> '); readln(cmd);
    if cmd = 'exit' then begin
      disconect(ftp);
      break;
    end;
    writeln(ftp.transaction(cmd));
  end
end.
только ftp комманды отлючаются от шелла:

Код:

-> syst
215 UNIX Type: L8

-> feat
211-Features:

-> pwd
257 "/" is current directory.

-> list rest 0 noop
450 rest 0 noop: No such file or directory

-> cwd WWW
250 CWD command successful

-> pwd
257 "/WWW" is current directory.

-> list rest 0 noop
450 rest 0 noop: No such file or directory

-> pasv
227 Entering Passive Mode (89,108,68,85,234,147).

->
и вообще у tnmftp много полезных методов.
BaronTreep вне форума Ответить с цитированием
Старый 17.10.2009, 13:48   #3
velikijmerlin
Пользователь
 
Аватар для velikijmerlin
 
Регистрация: 14.08.2009
Сообщений: 10
По умолчанию

эм, тогда я чего то не могу понять, у меня такой же код... только не консолькой а формой... различий не нашёл особых...

в чём же проблема тогда?((
velikijmerlin вне форума Ответить с цитированием
Старый 17.10.2009, 13:58   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а может попробуете idFTPClient?
а то NM как то устарели..
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 17.10.2009, 14:06   #5
velikijmerlin
Пользователь
 
Аватар для velikijmerlin
 
Регистрация: 14.08.2009
Сообщений: 10
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
а может попробуете idFTPClient?
а то NM как то устарели..
эм, так у меня же стоит IdFTPClient, брал со вкладке Indy Clients.
или вы имеете в виду какой - то другой компонент?
velikijmerlin вне форума Ответить с цитированием
Старый 17.10.2009, 14:45   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

я про пример, пример консольный на NM компоненте.
у вас какая версия ИнДи?
посмотрите их стандартные демки
http://indyproject.org/Sockets/Demos/index.EN.aspx
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 17.10.2009, 15:42   #7
velikijmerlin
Пользователь
 
Аватар для velikijmerlin
 
Регистрация: 14.08.2009
Сообщений: 10
По умолчанию

эм, а где можно посмотреть какая версия Инди установлена?

просто у меня 7 Делфи стоит...
velikijmerlin вне форума Ответить с цитированием
Старый 17.10.2009, 15:44   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

киньте любой инди компонент на форму и на нем правой кнопкой About InDy
скорее всего у вас старая.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 17.10.2009, 17:18   #9
velikijmerlin
Пользователь
 
Аватар для velikijmerlin
 
Регистрация: 14.08.2009
Сообщений: 10
По умолчанию

да у меня 9 версия инди, скачал демки, будет время просмотрю их..))
velikijmerlin вне форума Ответить с цитированием
Старый 17.10.2009, 20:49   #10
velikijmerlin
Пользователь
 
Аватар для velikijmerlin
 
Регистрация: 14.08.2009
Сообщений: 10
По умолчанию

эм, а может ли возникнуть ошибка авторизации из-за фтп сервера на хостинге?
и вообще каким образом лучше тестировать фтп клиент, на хостинге или не локалхосте?
velikijmerlin вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прокси - проверка коннекта bagulma Работа с сетью в Delphi 0 17.04.2009 19:44
WebBrowser! Если нет коннекта... Port 111 Работа с сетью в Delphi 1 15.01.2009 15:15
Ошибка коннекта NMPOP3 Scott Работа с сетью в Delphi 1 24.09.2008 09:24