Indy - TIdFtp Dosya Gönderme Hatası

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
destiny24
Üye
Mesajlar: 131
Kayıt: 22 Tem 2010 09:42

Indy - TIdFtp Dosya Gönderme Hatası

Mesaj gönderen destiny24 »

Arkadaşlar Merhabalar,

Bir programım var Belli aralıklarda bir dosya oluşturarak bunu TIdFtp üzerinden Server'a gönderiyor ve bana bir dosya linki oluşturuyor.
Program aslında çalışıyor ancak stabil değil.Sebebi ise program dosyayı göndermek için Ftp'ye bağlanıyor Daha sonra bir ChangeDir ile başka bir klasör altına giriyor ve dosyayı buraya gönderiyor.

Sorun şu ki dosya boyuları maximum 100 kb olmasına rağmen sanırım uzun süre bağlantı açık kaldığından timeout'a düşüp connection'u kapatıyor.
mesela 5 dakikada bir dosya oluştuğunu düşünelim 1. dosyayı gönderiyor, 2. dosyayı da gönderiyor ama 3. dosyayı gönderirken hata veriyor ve gönderemiyor, daha sonra 4. ve 5. dosya gidiyor ama 6. ve 7. dosyada yine patlıyor. ben her seferinde disconnect edip tekrar connect ediyorum halbuki.Verdiği hata aşağıda time out süresi yüzünden bağlantıyı kapattım diyor ancak bu 120 saniyelik süreyi ben değiştiriyorum aslında ama verdiği hatada halâ 120 yazıyor.yukarıda verdiğim dosya sıraları değişebiliyor mesela bazen ilk dosyayı göndermiyor bazen 3. bazen de 4. yü.Şimdi çalışma mantığı böyle olan bir program için bana nasıl bir yol önerirsiniz.?
Yardımınıza ihtiyacım var.

Teşekkürler...


Timeout (120 seconds): closing control connection.
ikra
Üye
Mesajlar: 901
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Re: Indy - TIdFtp Dosya Gönderme Hatası

Mesaj gönderen ikra »

destiny24 yazdı: Sorun şu ki dosya boyuları maximum 100 kb olmasına rağmen sanırım uzun süre bağlantı açık kaldığından timeout'a düşüp connection'u kapatıyor.
mesela 5 dakikada bir dosya oluştuğunu düşünelim 1. dosyayı gönderiyor, 2. dosyayı da gönderiyor ama 3. dosyayı gönderirken hata veriyor ve gönderemiyor, daha sonra 4. ve 5. dosya gidiyor ama 6. ve 7. dosyada yine patlıyor. ben her seferinde disconnect edip tekrar connect ediyorum halbuki.
Her defasinda disconnect yapip tekrar connect yapiyorsan ve connect success oluyorsa timeout vermemesi lazim.
eger ki, sürekli bagli kaliyorsan, DummyTransfer yapman gerekir. ya server sana dummy gönderecek yada sen server'a. KeepAlive mekanizmasi diyorlardi yanilmiyorsam.
kıdemsiz üye
destiny24
Üye
Mesajlar: 131
Kayıt: 22 Tem 2010 09:42

Re: Indy - TIdFtp Dosya Gönderme Hatası

Mesaj gönderen destiny24 »

peki başka bir component ile yapılabilir mi bu yada program Ftp üzerinden çalışmaktan başka bir yol ile çalışabilir mi ?
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: Indy - TIdFtp Dosya Gönderme Hatası

Mesaj gönderen SimaWB »

destiny24 yazdı:peki başka bir component ile yapılabilir mi bu yada program Ftp üzerinden çalışmaktan başka bir yol ile çalışabilir mi ?
Ben birkaç projede, ethernetten ve comport veri alışverişinde SYNAPSE kullandım. Tavsiye ederim.
Synapse'de FTP client oluşturup dosya göndermek çok kolay:

Kod: Tümünü seç

TFTPClient := TTFTPSend.Create;
try
	TFTPClient.TargetHost := "Hedef Hostu seçin";
	TFTPClient.TargetPort := "Portu seçin";	
	TFTPClient.Data.LoadFromFile(OpenDialog.FileName);
	if TFTPClient.SendFile(ExtractFileName(OpenDialog.FileName)) then
	  // dosya transfer edildi
	else
	  // dosya transferinde hata var. Hata için; TFTPClient.ErrorString
finally
    TFTPClient.Free;
end;
There's no place like 127.0.0.1
destiny24
Üye
Mesajlar: 131
Kayıt: 22 Tem 2010 09:42

Re: Indy - TIdFtp Dosya Gönderme Hatası

Mesaj gönderen destiny24 »

biraz araştırdım ancak pek bir şey bulamadım.
şimdi Synapse ile socket olarak server'da bir port açıp yada açık bir port kullanıp veriyi karşıya gönderiyoruz öylemi.?

aslında bu paketlerinde yönlendirilmesi için(klasör altına falan) server'da bir programa ihtiyaç var mı ?
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: Indy - TIdFtp Dosya Gönderme Hatası

Mesaj gönderen SimaWB »

Synapse'nin Burada FTP demosu var.
Server kısmında nerelere erişebileceğinizi, yazma/okuma vs. nasıl yetkilerinizin olacağını karar veren FTP serverdır. Sizin kullanıcı ve şifrenize göre yönlendirme yapar.
There's no place like 127.0.0.1
Cevapla