Главная страница
    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-1167753854
Fosgen
2007-01-02 19:04
2008.04.06
Проекту HOMESHIP требуются художники-моделлеры.


11-1186549479
Alexey_k
2007-08-08 09:04
2008.04.06
подсчёт трафика


2-1205412649
Vinum
2008-03-13 15:50
2008.04.06
Как отловить правый клик мыши


15-1203689334
NaRuTo
2008-02-22 17:08
2008.04.06
Компилятор Delphi


15-1203484843
Ega23
2008-02-20 08:20
2008.04.06
посоветуйте средство разработки под Postgres.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский