Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2008.04.06;
Скачать: [xml.tar.bz2];

Вниз

ftp сервер   Найти похожие ветки 

 
Temp_Yuriy   (2007-07-04 21:47) [0]

Здравствуйте коллеги. Столкнулся с непонятным для меня моментом. Есть код:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
 try
 NMFTP1.Host :=IP;
 NMFTP1.Port :=StrToInt(Port);
 NMFTP1.UserID :=Login;
 NMFTP1.Password :=Password;
 Zapuski :=Zapuski + 1;
 NMFTP1.Connect;
 for i :=0 to StrToInt(KolvoDir) - 1 do
   begin
     NMFTP1.ChangeDir(MassivDir[i]);
   end;
 NMFTP1.Upload(PatchFileSystem, NameOnFTP);
 NMFTP1.Disconnect;
 except
   Label3.Caption :=IntToStr (Zapuski);
   Label4.Caption :=IntToStr (Uspehi);
   Exit;
 end;
 Uspehi :=Uspehi + 1;
 Label3.Caption :=IntToStr (Zapuski);
 Label4.Caption :=IntToStr (Uspehi);
end;
Это загрузка файла на ftp сервер. Программа должна работать круглосуточно. Программа работает на ура около двух-трёх суток и слетает. Быть может она в какой то момент времени не может соедениться с ftp сервером и срабатывает блок try-except. Может можно и нужно там писать кусочек кода NMFTP1.Free? Может кто сталкивался?


 
Temp_Yuriy   (2007-07-05 07:31) [1]

Ура. Всю ночь бился. Заработало как надо. Вот что у меня получилось:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
 try
   try
     ftp := TNMFTP.Create(Form1);
     ftp.Port := 21;
     ftp.Host := IP;
     ftp.UserID :=Login;
     ftp.Password :=Password;
     ftp.OnConnect :=RialConnect;
     ftp.Connect;
   except
     Exit;
   end;
 finally
   ftp.Free;
 end;
end;

procedure TForm1.RialConnect(Sender : TObject);
begin
 for i :=0 to StrToInt(KolvoDir) - 1 do
   begin
     ftp.ChangeDir(MassivDir[i]);
     Application.ProcessMessages;
   end;
   ftp.Upload(PatchFileSystem, NameOnFTP);
   ftp.Disconnect;
end;


 
umbra ©   (2007-07-05 11:12) [2]


> Программа работает на ура около двух-трёх суток и слетает.

в первом варианте в случае обрыва соединения не происходил дисконнект, т.е. сокет не освобождался. После этого снова начиналось новое соединение. И т.д. Дня через три кончались доступные сокеты :)


 
Temp_Yuriy ©   (2007-07-13 20:09) [3]

Сделал ещё лучше:
procedure TForm1.RialConnect(Sender : TObject);
begin
 try
   try
 for i :=0 to StrToInt(KolvoDir) - 1 do
   begin
     ftp.ChangeDir(MassivDir[i]);
     Application.ProcessMessages;
   end;
   ftp.Upload(PatchFileSystem, NameOnFTP);
   Uspehi :=Uspehi + 1;
   Label4.Caption := IntToStr (Uspehi);
   ftp.Disconnect;
   except
     Exit;
   end;
   finally
     ftp.Disconnect;
   end;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
 U : integer;
begin
 for U :=0 to ComponentCount - 1 do
 if Components[U] is TNMFTP then TNMFTP(Components[U]).Free;

 Zapuski :=Zapuski+1;
 Label3.Caption :=IntToStr(Zapuski);
 try
   try
     ftp := TNMFTP.Create(Form1);
     ftp.Port :=21;
     ftp.Host := IP;
     ftp.UserID :=Login;
     ftp.Password :=Password;
     ftp.OnConnect :=RialConnect;
     ftp.Connect;
   except
     Exit;
   end;
 finally
   ftp.Disconnect;
 end;
end;



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2008.04.06;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.006 c
9-1169059683
Ericc
2007-01-17 21:48
2008.04.06
ОФФ:На этом сайте была игрушка "Гробница фараона"


15-1203701871
NaRuTo
2008-02-22 20:37
2008.04.06
POGi - Media Player! Доделка!


2-1204485733
Дмитрий Патрушев
2008-03-02 22:22
2008.04.06
Net-статистика


3-1194865899
Den
2007-11-12 14:11
2008.04.06
управление БД из dll


3-1194934491
Ega23
2007-11-13 09:14
2008.04.06
Getting Started





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский