Модераторы: Snowy, MetalFan, bems, Poseidon

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> FTP, подключение к FTP 
:(
    Опции темы
Martisha
Дата 29.10.2008, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 197
Регистрация: 15.10.2008
Где: казань

Репутация: нет
Всего: 1



Всем привет) нужна помощь..
смотрела подобные темы но не поняла..как можно проверить, работает ли FTP-сервер? пробовала подключатся по примеру http://forum.vingrad.ru/topic-231454.html , но какие то ошибки вылазят  smile 
  
PM MAIL ICQ   Вверх
ziga
Дата 29.10.2008, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 273
Регистрация: 25.4.2007

Репутация: нет
Всего: 1



Что за ошибки то?
PM MAIL   Вверх
Alix
Дата 29.10.2008, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


L45
**


Профиль
Группа: Участник
Сообщений: 581
Регистрация: 4.5.2005
Где: Pskov/Spb

Репутация: 8
Всего: 23



Как вариант: 

Код

uses WinInet;

var
  internet   : HINTERNET;
  connection : HINTERNET;

function openConnection(const serverURL, username, password : string) : boolean;
begin
  internet := InternetOpen(
    'DeliverabilityTool',
    INTERNET_OPEN_TYPE_PRECONFIG,
    nil,
    nil,
  0);

  if internet = nil then begin
    result := false;
    exit;
  end;

  connection := InternetConnect(
    internet,
    PChar(serverURL),
    INTERNET_DEFAULT_FTP_PORT,
    PChar(username),
    PChar(password),
    INTERNET_SERVICE_FTP,
    0,  // flags. may use INTERNET_FLAG_PASSIVE
    0   // for callbacks
  );

  if connection = nil then begin
    InternetCloseHandle(internet);
    result := false;
    exit;
  end;

  result := true;
end;

function closeConnection : boolean;
begin
  InternetCloseHandle(connection);
  InternetCloseHandle(internet);
  result := true;
end;
 (Выдрано из одного проекта, поэтому все так немного странно).
Чтобы проверить надо соединиться (openConnection), и если true, т.е. все удалось, то и закрытие (closeConnection).


--------------------
Знание только тогда знание, когда оно приобретено усилиями своей мысли, а не памятью (с) Л. Толстой
High tech. Low live. (с) Gardner Dozois
PM MAIL ICQ Skype   Вверх
Martisha
Дата 30.10.2008, 09:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 197
Регистрация: 15.10.2008
Где: казань

Репутация: нет
Всего: 1



делаю так:

Код

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm1 = class(TForm)
    Button1: TButton;
    IdFTP1: TIdFTP;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  IdFTP1.Host := 'хх.ххх.х.х';
  IdFTP1.Port := 69;
  idftp1.Username := 'anonymous';
  idftp1.Password := '[email protected]';
  IdFTP1.Connect;
end;

end.



а результат:
программа запускается, но при кликевылетает и выдает ошибку-''Project Project1.exe raised exception class EldSocketError with message 'Socket Error#11001 Host not found'. Process stopped. Use Step or Run to continue.''
 smile

Добавлено @ 09:16
Alix, чего то не пойму пока что с этим делать..но все равно спасибо)

Это сообщение отредактировал(а) Martisha - 30.10.2008, 09:24
PM MAIL ICQ   Вверх
Matematik
Дата 30.10.2008, 09:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1027
Регистрация: 11.3.2006

Репутация: 7
Всего: 50



Код

  IdFTP1.Host := 'хх.ххх.х.х';
  IdFTP1.Port := 69;

Интересный адрес у сервера. XXX по порту 69  smile:
Неудивительно что такого адреса не существует, о чем и говоритсья в ошибке "Socket Error#11001 Host not found"

Может попробуешь ввести что-нибудь правдоподобное
Код

  IdFTP1.Host := 'mirror.yandex.ru';
  IdFTP1.Port := 25;




PM MAIL WWW ICQ   Вверх
Martisha
Дата 30.10.2008, 10:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 197
Регистрация: 15.10.2008
Где: казань

Репутация: нет
Всего: 1



Matematik, ввела, только ошибка та же и еще "Socket Error 11004"  smile 
PM MAIL ICQ   Вверх
aktuba
Дата 30.10.2008, 10:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


Профиль
Группа: Завсегдатай
Сообщений: 1915
Регистрация: 24.4.2006
Где: Планета Земля

Репутация: 7
Всего: 38



Цитата(Matematik @  30.10.2008,  10:57 Найти цитируемый пост)
IdFTP1.Port := 25;

25 - это SMTP вроде ;). Поменяй на 21.

Это сообщение отредактировал(а) aktuba - 30.10.2008, 10:13


--------------------
user posted image
PM MAIL WWW Skype   Вверх
Matematik
Дата 30.10.2008, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1027
Регистрация: 11.3.2006

Репутация: 7
Всего: 50



Цитата(aktuba @ 30.10.2008,  10:12)
Цитата(Matematik @  30.10.2008,  10:57 Найти цитируемый пост)
IdFTP1.Port := 25;

25 - это SMTP вроде ;). Поменяй на 21.

Ооо точно   smile 
PM MAIL WWW ICQ   Вверх
Martisha
Дата 30.10.2008, 11:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 197
Регистрация: 15.10.2008
Где: казань

Репутация: нет
Всего: 1



smile поменяла..та же ошибка(((

Добавлено через 4 минуты и 33 секунды
и еще сообщение Internal Error PRO-2794, никак не убирается с экрана!!! (((
PM MAIL ICQ   Вверх
Alix
Дата 30.10.2008, 12:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


L45
**


Профиль
Группа: Участник
Сообщений: 581
Регистрация: 4.5.2005
Где: Pskov/Spb

Репутация: 8
Всего: 23



Цитата(Martisha @  30.10.2008,  09:14 Найти цитируемый пост)
Alix, чего то не пойму пока что с этим делать..но все равно спасибо)

В коде что я привел есть две функции, определены две глобальные переменные и надо подключить модуль WinInet. Вначале вызывается функция openConnection, которая пытается установить соединение с сервером. Если удалось, то вернет true, если нет - false. Если вернула true, то надо не забыть вызвать closeConnection. Короче, чтобы не париться, вот всесь код в одной функии, которая ответит на твой вопрос "работает ли ftp-сервер".
Код
uses WinInet;

function isFTPAlive(const serverURL, username, password : string) : boolean;
var
  internet   : HINTERNET;
  connection : HINTERNET;

begin
  internet := InternetOpen(
    'VitalityTester', // имя "агента". Можешь заменить на что угодно, что тебе нравится.
    INTERNET_OPEN_TYPE_PRECONFIG,
    nil,
    nil,
    0
  );

  if internet = nil then begin
    result := false;
    exit;
  end;

  connection := InternetConnect(
    internet,
    PChar(serverURL),
    INTERNET_DEFAULT_FTP_PORT,
    PChar(username),
    PChar(password),
    INTERNET_SERVICE_FTP,
    0,  // flags. may use INTERNET_FLAG_PASSIVE
    0   // for callbacks
  );

  if connection = nil then begin
    InternetCloseHandle(internet);
    result := false;
    exit;
  end;

  result := true;

  InternetCloseHandle(connection);
  InternetCloseHandle(internet);
end;

В функцию надо передать адрес сервера, имя пользователя и пароль. Пример вызова (в Edit1 надо написать адрес сервера, например приведенный выше mirror.yandex.ru):
Код
  showmessage(edit1.text + ' is alive: ' + boolToStr(isFTPAlive(edit1.text, '', ''), true));



--------------------
Знание только тогда знание, когда оно приобретено усилиями своей мысли, а не памятью (с) Л. Толстой
High tech. Low live. (с) Gardner Dozois
PM MAIL ICQ Skype   Вверх
aktuba
Дата 30.10.2008, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


Профиль
Группа: Завсегдатай
Сообщений: 1915
Регистрация: 24.4.2006
Где: Планета Земля

Репутация: 7
Всего: 38



Цитата(Martisha @  30.10.2008,  12:00 Найти цитируемый пост)
smile поменяла..та же ошибка(((

Выкладывай проект.


--------------------
user posted image
PM MAIL WWW Skype   Вверх
Martisha
Дата 30.10.2008, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 197
Регистрация: 15.10.2008
Где: казань

Репутация: нет
Всего: 1



это чтоли? 
Код

program Project1;

uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end

PM MAIL ICQ   Вверх
morpheyushka
Дата 30.10.2008, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зеленый человек
**


Профиль
Группа: Участник
Сообщений: 563
Регистрация: 26.2.2008
Где: Киев

Репутация: 2
Всего: 8



Цитата(Martisha @  30.10.2008,  16:31 Найти цитируемый пост)
это чтоли? 

Код

program Project1;
uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1};
{$R *.res}
begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end


 smile, давай Unit1 показывай


--------------------
user posted image
Спасибо делается вот так!!!
PM MAIL WWW   Вверх
Akella
Дата 30.10.2008, 19:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 8
Всего: 329



Martisha, на сайте Indy есть готовые примеры.
http://www.indyproject.org/Sockets/Docs/index.EN.aspx


Вот примеры для Инди9
http://www.delphiexpert.ru/load/Components/indy9demos.exe

Документация по инди
http://forum.vingrad.ru/forum/topic-85659.html


PM MAIL   Вверх
CompWorm
Дата 31.10.2008, 00:22 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Допеределыватель
***


Профиль
Группа: Участник Клуба
Сообщений: 1689
Регистрация: 6.12.2004
Где: /

Репутация: 2
Всего: 31



мой обновлятор доктора веба работает примерно так:

Код

memo2.Lines.Add('connecting to ftp.drweb.com ...');
  IdFTP1.Host := 'ftp.drweb.com'; // адрес или IP сервера
  //IdFTP1.Port :=21;
  IdFTP1.Username := 'anonymous';  // Login
  IdFTP1.Password := ''; // Password
  IdFTP1.Passive:=true;
  IdFTP1.Connect();
memo2.Lines.Add('Done!');


ЗЫ исходник по просьбам

Это сообщение отредактировал(а) CompWorm - 31.10.2008, 00:56


--------------------
PM MAIL   Вверх
Martisha
Дата 31.10.2008, 08:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 197
Регистрация: 15.10.2008
Где: казань

Репутация: нет
Всего: 1



Цитата(morpheyushka @  30.10.2008,  16:34 Найти цитируемый пост)
 , давай Unit1 показывай 

показывала уже..я там только Port и Host поменяла, а все остальное так же осталось  smile 


Akella, CompWorm, спасибочки..посмотрю-попробую) потом напишу что получится) 

PM MAIL ICQ   Вверх
Martisha
Дата 31.10.2008, 11:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 197
Регистрация: 15.10.2008
Где: казань

Репутация: нет
Всего: 1



Цитата(CompWorm @  31.10.2008,  00:22 Найти цитируемый пост)
ЗЫ исходник по просьбам

что то у меня ошибки при распаковке :-Р
PM MAIL ICQ   Вверх
CompWorm
Дата 1.11.2008, 10:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Допеределыватель
***


Профиль
Группа: Участник Клуба
Сообщений: 1689
Регистрация: 6.12.2004
Где: /

Репутация: 2
Всего: 31



перепроверил на работе - качается, распаковывается и запускается... какая у вас ошибка и где?


--------------------
PM MAIL   Вверх
Martisha
Дата 1.11.2008, 11:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 197
Регистрация: 15.10.2008
Где: казань

Репутация: нет
Всего: 1



Цитата(CompWorm @  1.11.2008,  10:06 Найти цитируемый пост)
какая у вас ошибка и где? 

скачала еще раз, попыталась распаковать, выходит ошибка: 

'PowerArchiver не может открыть этот файл. Он может быть неверным архивом.
Внимание: 
Проверьте, что файл не используется.
Если вы попытаетесь открыть EXE файл, то он может быть поврежден или иметь неверный формат.
Если вы хотите повторно открыть многотомный ZIP архив, то откройте его последний том.'

может конечно я архиватор не тот использую..хотя проблем до этого не было
PM MAIL ICQ   Вверх
Alix
Дата 1.11.2008, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


L45
**


Профиль
Группа: Участник
Сообщений: 581
Регистрация: 4.5.2005
Где: Pskov/Spb

Репутация: 8
Всего: 23



Архив целый, WinRAR его нормально читает. Попробуйте другой архиватор. Тот же WinRAR или 7zip.


--------------------
Знание только тогда знание, когда оно приобретено усилиями своей мысли, а не памятью (с) Л. Толстой
High tech. Low live. (с) Gardner Dozois
PM MAIL ICQ Skype   Вверх
Martisha
Дата 1.11.2008, 13:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 197
Регистрация: 15.10.2008
Где: казань

Репутация: нет
Всего: 1



Цитата(Alix @  1.11.2008,  12:46 Найти цитируемый пост)
Попробуйте другой архиватор. 

попробую)
PM MAIL ICQ   Вверх
Martisha
Дата 7.11.2008, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 197
Регистрация: 15.10.2008
Где: казань

Репутация: нет
Всего: 1



Alix, не получилось, на разных компах пробовала и разными архиваторами..
PM MAIL ICQ   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0687 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.