TFTP Server a dosya gönderme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
kahraman1285
Üye
Mesajlar: 360
Kayıt: 10 Nis 2006 09:07

TFTP Server a dosya gönderme

Mesaj gönderen kahraman1285 »

Merhaba

Değerli fikirlerinize ihtiyacım var.

Com port ve ethernet bağlantısı oaln bir elektronik cihaza com port ile bağlanıp TFTP server ı aktif hale getiriyorum. TFTP server is running and waiting request iletisini aldıktan sonra Windows 10 64 bit yada win 7 den Komut istemi ile

Kod: Tümünü seç

tftp 192.168.240.1 put xxx.xx
komutunu yazarak dosyamı göndermeye çalışıyorum. 5-10 sn sonra windows time out hatası veriyor. Cihazda isen hiç bir değişiklik yok . Dosya gönderilmiyor.

İki farklı win pc den birine TFTP server kurup diğerini de tftp cklient olarak aynı dosyayı yada başka dosyayı göndermeye çalıştığımda server tarafında dosya create ediliyor. ama boyut 0 . ve gene time out hatası alıyorum. Yani iki win pc arasında da bu yöntemle dosya gönderemiyorum. TFTP udp 69 nolu porttan çalıştığını biliyorum. TFTP client olan makinede netstat -an|more komutu ile baktığımda llistede udp 69 bulunmuyor. ama server win pc de listede bu port var.

Aynı işlemi sanal makine üzerine Ubuntu kurup tftp aplikasyonu yükledim ama sadece client kısmını yani server tarafını kurmadım kurmam gerekli mi bilmiyorum. Bu sanal makineden başka windows makineye (tftp server kurulu) rahatlıkla istediğim boyutta dosya gönderebiliyorum. Lakin yine bu cihaza sanal makine üzerindeki ubuntudan dosya gönderemiyorum. Time out hatası alıyorum . Ama ubuntu üzerinde ilk connect yaptığımda ubuntu connected iletisini veriyor kullandığım ubuntu komutları şöyle :

Kod: Tümünü seç

sudo su
password ******
tftp
connect 192.168.240.1
binary
verbose
put mmmm.hex
acaba cihazın bu portu dinlediğini yada hatta olduğunu nasıl anlarım .
Ping komutuna cevap vermiyor. Aslında tcp portlarını dinlediğini yada böyle bir özelliği olmadığı için pinge cevap vermediğini düşünüyorum.

Delphi de Indy tftp componenti ile hazır kodlar ile bi ufak uygulama yaptım ama çalışmadı. Yine timeout hatası windows to windows dahi dosya gönderemiyor.
ihalilcoban
Üye
Mesajlar: 121
Kayıt: 10 Ara 2015 10:39

Re: TFTP Server a dosya gönderme

Mesaj gönderen ihalilcoban »

Merhaba,

1- Cihazla tam olarak ne yapmak istiyorsunuz?
2- Bu tip cihazların SDK dosyaları olması lazım. Sizin cihazın SDK dosyaları elinizde mevcut mu?

Spor salonu için yazmış olduğum programda, giriş-çıkış turnike sisteminde kullandığım ZK F18 ID cihazına, ethernet bağlantısı aracılığıyla ve cihazın SDK dosyalarında bulunan fonksiyonları kullanarak üye bilgilerini cihaza gönderme, düzenleme, silme vb. işlemleri yaptırmıştım. Sizin de yapmak istediğiniz böyle bir şey mi?
kahraman1285
Üye
Mesajlar: 360
Kayıt: 10 Nis 2006 09:07

Re: TFTP Server a dosya gönderme

Mesaj gönderen kahraman1285 »

Malesef sdk dosyası yok . Cihazın versiyon güncellemesini yapması maksadıyla içine bir dosya atmalıyım. Ve cihazın tek dosya alma yöntemi bu . kullanılabilir komutlara bkatığımda ki ? yazdığımda bu komutlar çıkıyor ve saadece kullanabileceğim komut bu var dosya transferi için.

Anladığım bu cihaz unix dilinde çalışıyor. Sanki Linux solaris gibi bi os ile atmaya çalışmalıyım diye düşünüyorum.
Çünkü windows kendi komut istemi ile wwindows to wşindows bile dosya transferi yapamıyor.

Ubuntuyu sanal yada gerçek makine olarak kullanmam da bi farklılık olur mu . Bugün ki denmem de sanal makine Network adapter NAT olarak ayarlı idi. Bir dahakinde Bridge modda farklı ip adresi kullanacağım.
ihalilcoban
Üye
Mesajlar: 121
Kayıt: 10 Ara 2015 10:39

Re: TFTP Server a dosya gönderme

Mesaj gönderen ihalilcoban »

İşletim sistemi fark edeceğini zannetmiyorum. Güvenlik duvarıyla alakalı bir durum olabilir mi acaba?
kahraman1285
Üye
Mesajlar: 360
Kayıt: 10 Nis 2006 09:07

Re: TFTP Server a dosya gönderme

Mesaj gönderen kahraman1285 »

Windows da güvenlik duvarım kapalıydı. Ama ubuntu kısmını bilmiyorum nasıl kapatılmalı bakayım şimdi internetten.
ertank
Kıdemli Üye
Mesajlar: 1650
Kayıt: 12 Eyl 2015 12:45

Re: TFTP Server a dosya gönderme

Mesaj gönderen ertank »

Merhaba,

Aşağıdaki adresten indirdiğim TFTP uygulaması ile dosya transferini başarılı bir şekilde iki windows bilgisayar arasında yapabildim. TFTP protokol gereği client ve server tarafında port bağlantısına izin verilmesi gerekiyor. Client tarafında izin vermeden önce sıfır byte boyutunda dosya oluşturdu. Ancak client tarafında da firewall izini verildikten sonra transfer başarılı bir şekilde gerçekleşti.
http://tftpd32.jounin.net/tftpd32.html

Delphi ile TIdTrivialFTP ve TIdTrivialFTPServer bileşenlerini kullanarak ilgili testleri gerçekleştirmeniz gerekir normalde. Siz direk TIdFTP bileşenini kullandı iseniz çalışmamış olma sebebi yüksek ihtimalle budur.
kahraman1285
Üye
Mesajlar: 360
Kayıt: 10 Nis 2006 09:07

Re: TFTP Server a dosya gönderme

Mesaj gönderen kahraman1285 »

Mrb ertank bey

Şimdi client tarafında güvenlik duvarını kapatınca dosya gönderdiğini gördüm.
Lakin bugün Güvenlik duvarı kapalı olmasına rağmen windows komut istemi ile hem win 7 de hem de win 10 da cihaza transfer yapamadık. güvenlik duvarının kapalı olduğuna eminim.

Bu program ile de win 7 de denedim iki gün önce ama sonuç aynı gönderemedim .Arada denemelerimde cihazda Download started ikazını gördüm.
Demek ki cihaz da windows gibi dosyayı create edip 0 boyut da kalıyor mu acaba diye düşünüyorum? Ama güvenlik duvarım tamamen kapalıydı.
kerpeten
Üye
Mesajlar: 62
Kayıt: 26 May 2016 01:31

Re: TFTP Server a dosya gönderme

Mesaj gönderen kerpeten »

Sanırım dosyanın başında 4 byte'lık Int32 tipinde gönderilen dosyanın boyutunu göndermeniz gerekiyor.
ertank
Kıdemli Üye
Mesajlar: 1650
Kayıt: 12 Eyl 2015 12:45

Re: TFTP Server a dosya gönderme

Mesaj gönderen ertank »

kerpeten yazdı: 08 Ara 2017 01:39 Sanırım dosyanın başında 4 byte'lık Int32 tipinde gönderilen dosyanın boyutunu göndermeniz gerekiyor.
Kullanılan program TFTP protokolü için yazılmış ve zaten bunu yapıyor. Delphi tarafında ise TIdTrivialFTP bileşeni bunu otomatik yapıyor.
kahraman1285
Üye
Mesajlar: 360
Kayıt: 10 Nis 2006 09:07

Re: TFTP Server a dosya gönderme

Mesaj gönderen kahraman1285 »

ertank yazdı: 07 Ara 2017 08:56 Merhaba,

Aşağıdaki adresten indirdiğim TFTP uygulaması ile dosya transferini başarılı bir şekilde iki windows bilgisayar arasında yapabildim. TFTP protokol gereği client ve server tarafında port bağlantısına izin verilmesi gerekiyor. Client tarafında izin vermeden önce sıfır byte boyutunda dosya oluşturdu. Ancak client tarafında da firewall izini verildikten sonra transfer başarılı bir şekilde gerçekleşti.
http://tftpd32.jounin.net/tftpd32.html

Delphi ile TIdTrivialFTP ve TIdTrivialFTPServer bileşenlerini kullanarak ilgili testleri gerçekleştirmeniz gerekir normalde. Siz direk TIdFTP bileşenini kullandı iseniz çalışmamış olma sebebi yüksek ihtimalle budur.
Bugun yine win 7 64 bit uzerinde bu programin 64 bit versiyonunu denedim ilk denemede cihaz da hic degikilik olmadi 30 sn sonra tekrar put ile ginderim yaptigimda cihaz download started dedi ama program uzerinde progres bar ilerlemedi 0 bayt olarak kaldi


Delphi ile uygulama yazsam olur mu . basina boyutu yazmaya gerek var mi yok mu ? İndy componentinde yada baska component tavsiyeniz var mi ?

Linux surumleri ile denemek daha mantik li mi olur . ?
Aklim karisti olmuyor canım sıkıldı.
ertank
Kıdemli Üye
Mesajlar: 1650
Kayıt: 12 Eyl 2015 12:45

Re: TFTP Server a dosya gönderme

Mesaj gönderen ertank »

TFTP protokol gereği sorunlara yol açabilir. UDP üzerinden çalışır ve UDP protokolünde paketin ulaşma sırası belirsizdir. Paket alamayan taraf karşı tarafa eksik paket bilgisi gönderir. Ancak bu eksik paket bilgisinin de göndericiye ulaşacağının garantisi yoktur.

Dolayısıyla sizin bazen çalışıyor, bazen çalışmıyor durumunuz switch, kablo, wifi sinyal kalitesi, vs. birçok sebepten oluyor olabilir.

Yapmak istediğiniz bir firmware güncellemesi idi. Halen yapamadınız mı?
kahraman1285
Üye
Mesajlar: 360
Kayıt: 10 Nis 2006 09:07

Re: TFTP Server a dosya gönderme

Mesaj gönderen kahraman1285 »

Kablo ile switch uzerinden baglaniyorum. Guncellwme yapamadim henuz dosyayi transfer edemwdigim icin.

İndy ile basit bi swyler yazsam olur mu diye dusunuyorum . dosyayi gondermeden once karsi tafafa bir bilgi gonderme geregi var midir ?
İkinci denemelerde download started ikazi veriyor ama hic bir ilerleme olmuyor.
kahraman1285
Üye
Mesajlar: 360
Kayıt: 10 Nis 2006 09:07

Re: TFTP Server a dosya gönderme

Mesaj gönderen kahraman1285 »

Merhab
Küçük bi uygulama yazdım Indy TIDTrivialFTP componenti ile yarın deneyeceğim . Aklıma takılan bir iki husu var. Bu componenti Properties lerinde:
Broadcast enabled seçeneği mevcut bu durumda tüm udp portlarına mı gönderme yapar ?
Buffer size 8192 default değer ben 512 e düşürsem bi önemi var mı? Daha düşük boyutlu göndermeye çalışsam ?
Aynı şekilde Request Block Size değerini de 512 e düşüreceğim ?
ertank
Kıdemli Üye
Mesajlar: 1650
Kayıt: 12 Eyl 2015 12:45

Re: TFTP Server a dosya gönderme

Mesaj gönderen ertank »

Merhaba,

Öncelikle protokol ile ilgili bilgi edinmenizde fayda var.
https://tools.ietf.org/html/rfc1350
Protokol gereği her iki taraf aralarındaki iletişim için kullanılacak buffer değerini anlaşabilirler. Standart değer 512 olarak belirlenmiş ancak zorunl tutulmamıştır.

TIdTrivialFTP bileşeni iletişim kurulur iken iletişim hızını sunucu tarafına gönderip sunucudan onay bekleyecektir. Sunucu bunu kabul eder ise karşılıklı olarak anlaşılan değer üzerinden haberleşeceklerdir. Bu değer 512 olmak zorunda değildir.
Cevapla