Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > прога тут работает а там нет..


Автор: etc 19.7.2005, 20:38
Здрась!
Сделал короче прогу которая обязана была качать с ftp файлы указанные.
поставил на домашнем фтпшник для проверки.. все работало.. все удачно скачивалось от куда надо и куда надо..
припер ее на работу.. запустил.. и она вроду бы начинала скачивать скачивала да только не то... вместо нужного файла у меня закачивалась страница 404.
может кто подскажет в чем злодей сидит? smile

Автор: RA 19.7.2005, 21:22
H04b Ну если программа работает в одно месте, а вдругом нет, то проблема скорее в том месте где она не работает.

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

Может там Фаер стоит, или еще чего.

По подробней надобы. Да и код программы не мешалобы посмотреть.

Автор: _hunter 20.7.2005, 10:36
и какой еще 404 на фтп?

Автор: RA 20.7.2005, 12:20
Цитата(_hunter @ 20.7.2005, 10:36)
и какой еще 404 на фтп?

Вот и я думаю, наверное всёже это фаер по дефолту всем возвращает страницу 404.

Автор: etc 24.7.2005, 12:09
Извиняюсь, не 404 а страницу с таким вот сообщением:
Цитата

Не удалось установить связь с сервером \"192.168.1.3\"!
Запрос: RETR /spr/sok/PERESEC.DBF
Получен ответ: 550 /spr/sok/PERESEC.DBF: No such file or directory

Как я понял он говорит что файла такого нету.. правильно? но он там есть...
а код проги такой:
Код

function GetInetFile 
(const fileURL, FileName: String): boolean;
const BufferSize = 1024; 
var 
 hSession, hURL: HInternet; 
 Buffer: array[1..BufferSize] of Byte; 
 BufferLen: DWORD; 
 f: File; 
 sAppName: string; 
begin 
Result:=False;
sAppName := ExtractFileName(Application.ExeName); 
hSession := InternetOpen(PChar(sAppName), 
               INTERNET_OPEN_TYPE_PRECONFIG, 
              nil, nil, 0); 
try 
 hURL := InternetOpenURL(hSession, 
           PChar(fileURL), 
           nil,0,0,0); 
 try
  AssignFile(f, FileName); 
  Rewrite(f,1);
  repeat 
   InternetReadFile(hURL, @Buffer, 
                    SizeOf(Buffer), BufferLen); 
   BlockWrite(f, Buffer, BufferLen)
  until BufferLen = 0;
  CloseFile(f);
  Result:=True;
 finally 
  InternetCloseHandle(hURL) 
 end
finally 
 InternetCloseHandle(hSession) 
end 
end;

procedure Tftpload.SpeedButton1Click(Sender: TObject);
var FileOnNet, LocalFileName, pas, log, adres: string;
begin
if filess.Items.Count=0 then exit;
if filess.ItemIndex<0 then filess.ItemIndex:=0;
log:=login.Text;
pas:=password.Text;
adres:=patch.Text;
FileOnNet:='ftp://'+log+':'+pas+'@'+adres+':'+21+'/'+filess.Items[filess.ItemIndex];
LocalFileName:='C:\'+filess.Items[filess.ItemIndex];
if GetInetFile(FileOnNet,LocalFileName)=True then
  endd.Items.Add(filess.Items[filess.ItemIndex]+' -Закачен');
if GetInetFile(FileOnNet,LocalFileName)=False then
  endd.Items.Add(filess.Items[filess.ItemIndex]+' - Не закачен');
end;

Добавлено @ 12:13
Цитата(RAdmin @ 20.7.2005, 12:20)
Цитата (_hunter @ 20.7.2005, 10:36)
и какой еще 404 на фтп?


Вот и я думаю, наверное всёже это фаер по дефолту всем возвращает страницу 404.


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

Автор: RA 24.7.2005, 17:26
Цитата(H04b @ 24.7.2005, 12:09)
а разве может быть так что допустим через Фар все нормально закачивается.. а вот через мое не закачивается?


Я имею в виду, что на работе у тебя возможно стоит FireWall каторый блокирует трафик, но из описания ошибки ясно что это не так.


Цитата(H04b @ 24.7.2005, 12:09)
Как я понял он говорит что файла такого нету.. правильно? но он там есть...
а код проги такой:

Вобще-то говорят что неудалось установить соединение с FTP.
И следовательно фаил не найден.

Вобще что это за сервер? Он случайно не из твоей домашней локалки?


Автор: etc 24.7.2005, 18:29
Цитата(RAdmin @ 24.7.2005, 17:26)
Вобще что это за сервер? Он случайно не из твоей домашней локалки?

Ну да с рабочей локалки.

Автор: RA 24.7.2005, 19:23
Цитата(H04b @ 24.7.2005, 18:29)
Ну да с рабочей локалки.

Это как понять, Скакой такой рабочей локалки?

H04b Запутал ты меня. smile

Если FTP сервер находится в локальной сети твоего дома то кроме как из локальной сети твоего дома к нему нету доступа, так как такие сервера в основном не имеют выхода в интернет.



Автор: etc 24.7.2005, 19:45
Вообщем объясняю..
Дома я сделал прогу.. на свой же комп поставил FTP сервак и проверил прогу.. все работало нормально..
Принес на работу, а на работе сеть сервак которой имеет фтп. и вот мне надо скачать файлы с этого рабочего фтпшника.. но выходит такая лабуда....
Терь понятно smile

Автор: RA 24.7.2005, 20:33
H04b Теперь да. smile И сразу вопрос, а почему ты не использовал функци для работы с ФТП из WinInet ?

Автор: etc 27.7.2005, 14:07
Мне просто надо было все это организовать по быстрому.. первое что попалось так и сделал. я ж только еще учусь. smile . поэтому не стал заморачиваться.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)