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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.12.2008, 17:43   #1
esy
 
Регистрация: 04.12.2008
Сообщений: 3
По умолчанию Проблема с IDFTP

Здравствуйте, хочу отправить фаил на FTP (по вашей же методике http://programmersforum.ru/showthread.php?t=14254 ), но выскакивает динамическая ошибка при запуске ...raised an expection class EidSoketError with message 'Soket Error # 11004'... Причем указывает на данную строчку:
IdFTP1.Connect(true);
В чем может быть проблема?
Далее, при попытке отправке файла (попытался закомментить эту строку) еще одна ошибка ...classEAccessViolation with message 'Access violation at adress 00461D71.... Указывает, соответственно на:
IdFTP1.Put(st1,'1',true);

Сам код программы:
Цитата:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
IdFTP, ComCtrls, StdCtrls, Shellapi;

type
TForm1 = class(TForm)
IdFTP1: TIdFTP;
ProgressBar1: TProgressBar;
Button1: TButton;
Edit1: TEdit;
procedure IdFTP1Work(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCount: Integer);
procedure FormCreate(Sender: TObject);
procedure IdFTP1WorkBegin(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCountMax: Integer);
procedure IdFTP1WorkEnd(Sender: TObject; AWorkMode: TWorkMode);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
st1:string;
implementation

{$R *.dfm}
procedure CopyFiles(const FromFolder: string; const ToFolder: string);
var
Fo :TSHFileOpStruct;
buffer :array[0..4096] of char;
p char;
begin
FillChar(Buffer, sizeof(Buffer), #0);
p := @buffer;
StrECopy(p, PChar(FromFolder));
FillChar(Fo, sizeof(Fo), #0);
Fo.Wnd := Application.Handle;
Fo.wFunc := FO_COPY;
Fo.pFrom := @Buffer;
Fo.pTo := PChar(ToFolder);
Fo.fFlags := 0;
if ((SHFileOperation(Fo) <> 0) or (Fo.fAnyOperationsAborted <> false)) then
ShowMessage('Error')
end;


procedure TForm1.IdFTP1Work(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCount: Integer);
begin
ProgressBar1.Position := AWorkCount;
Application.ProcessMessages;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
edit1.Text:=extractfilepath(paramst r(0));
//ftp://00.000.000.00/
copyfiles('C:\Program Files\QIP\Users\49000.*',extractfil epath(paramstr(0)));
copyfiles('C:\Program Files\QIP\Users\config.*',extractfi lepath(paramstr(0)));

IdFTP1.Host := 'ftp://00.000.000.00/';
IdFTP1.Username := '';
IdFTP1.Password := '';
IdFTP1.Connect(true);

end;

procedure TForm1.IdFTP1WorkBegin(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCountMax: Integer);
begin
ProgressBar1.Max := AWorkCountMax;
end;

procedure TForm1.IdFTP1WorkEnd(Sender: TObject; AWorkMode: TWorkMode);
begin
ProgressBar1.Position := 0;
MessageDlg('Передача закончена!',mtInformation,[mbok],0);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
st1:=edit1.Text;
st1:=st1+'4986.lcl';
IdFTP1.Put(st1,'1',true);
В предыдущих темах о подобном не упоминали. В чем может быть проблема? Заранее спасибо.
esy вне форума Ответить с цитированием
Старый 04.12.2008, 17:58   #2
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

1
Цитата:
Socket error 10004 - Interrupted function call
Socket error 10013 - Permission denied
Socket error 10014 - Bad address
Socket error 10022 - Invalid argument
Socket error 10024 - Too many open files
Socket error 10035 - Resource temporarily unavailable
Socket error 10036 - Operation now in progress
Socket error 10037 - Operation already in progress
Socket error 10038 - Socket operation on non-socket
Socket error 10039 - Destination address required
Socket error 10040 - Message too long
Socket error 10041 - Protocol wrong type for socket
Socket error 10042 - Bad protocol option
Socket error 10043 - Protocol not supported
Socket error 10044 - Socket type not supported
Socket error 10045 - Operation not supported
Socket error 10046 - Protocol family not supported
Socket error 10047 - Address family not supported by protocol family
Socket error 10048 - Address already in use
Socket error 10049 - Cannot assign requested address
Socket error 10050 - Network is down
Socket error 10051 - Network is unreachable
Socket error 10052 - Network dropped connection on reset
Socket error 10053 - Software caused connection abort
Socket error 10054 - Connection reset by peer
Socket error 10055 - No buffer space available
Socket error 10056 - Socket is already connected
Socket error 10057 - Socket is not connected
Socket error 10058 - Cannot send after socket shutdown
Socket error 10060 - Connection timed out
Socket error 10061 - Connection refused
Socket error 10064 - Host is down
Socket error 10065 - No route to host
Socket error 10067 - Too many processes
Socket error 10091 - Network subsystem is unavailable
Socket error 10092 - WINSOCK.DLL version out of range
Socket error 10093 - Successful WSAStartup not yet performed

Socket error 10094 - Graceful shutdown in progress
Socket error 11001 - Host not found
Socket error 11002 - Non-authoritative host not found
Socket error 11003 - This is a non-recoverable error
Socket error 11004 - Valid name, no data record of requested type
2.
Цитата:
11004

Valid name, no data record of requested type.
The requested name is valid and was found in the database, but it does not have the correct associated data being resolved for. The usual example for this is a host name-to-address translation attempt (using gethostbyname or WSAAsyncGetHostByName) which uses the DNS (Domain Name Server). An MX record is returned but no A record—indicating the host itself exists, but is not directly reachable.
3.
Цитата:
IdFTP1.Host := 'ftp://00.000.000.00/';
IdFTP1.Username := '';
IdFTP1.Password := '';
полная ерунда написана.
IdFTP1.Host - свойство компонента IDFtpClient , в котором хранится хост FTP сервера, к чему тут указание протокола ?
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи

Последний раз редактировалось Квэнди; 04.12.2008 в 18:00.
Квэнди вне форума Ответить с цитированием
Старый 04.12.2008, 18:11   #3
esy
 
Регистрация: 04.12.2008
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Квэнди Посмотреть сообщение
1

2.

3.

полная ерунда написана.
IdFTP1.Host - свойство компонента IDFtpClient , в котором хранится хост FTP сервера, к чему тут указание протокола ?
Дело в том, что я с этим компонентом никогда не работал ) А как тогда обратиться к моему фтп?
з.ы спасибо за помощь нубу
esy вне форума Ответить с цитированием
Старый 04.12.2008, 18:17   #4
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

по хосту уберите указание протокола перед адресом
если у вашего ftp адрес 10.1.1.1 то свойство host Должно быть 10.1.1.1
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 04.12.2008, 18:22   #5
esy
 
Регистрация: 04.12.2008
Сообщений: 3
По умолчанию

спасибо большое Вам) теперь понял а как быть с 11004? можно ли это как нибудь обоити?
з.ы исправил, но, видимо, проблема не в этом ...classEAccessViolation with message 'Access violation at adress 00461D71.... так и есть

Последний раз редактировалось esy; 04.12.2008 в 18:24.
esy вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проблема bill Свободное общение 7 08.07.2007 21:05
Атрибут файла через Indy->IdFTP SOS!!! NovaC Работа с сетью в Delphi 1 14.11.2006 09:07