Delphi ftp server(ACİL)

Başlatan otm, 11 Haziran 2005, 10:22:03

otm

Merhaba
Bir Pbx sistemi için program yazıyorum ancak ftp olayında takıldım.İnternette (programlama.com vs)birçok delphi komponenti var ancak hepside biryere kadar çalışıp kalıyorlar.sistem klasik ftp server gibi çalışmıyor.verilen komutlarla bilgiyi kendi içinde değil port komutuyla belirlenen bir layere atıyor.Port olarak 30021 ve30020 numaralı portları kullanıyor.ftp bağlantısında 30021 den ftp oturumu açılmasına izin veriyor kullanıcı adı ve paswordu kabul ediyor.ancak bundan sonra garip bişi yapmak gerekiyor yoksa dışarı atıyor yani oturumu sonlandırıyor olay şu pcnin portu diyelim 1031 olsun her bilgi alış verişinde portu 1 artırmak istiyor nedenini anlamadım yani ilk başlangıçta 1031 sonra 1032 sonra 1033 vs vs gibi.
Aşağıya orjinal programının ethernet sniffer ile yakaladığım data haberleşmesini yazdım.aynı şeyi kendi programımla yapıyorum ama ilk STOR komutunu verdiğim anda beni dışarı atıyor..SORUN NE???
220 PABX Session Manager FTP Server
USER atr_sys
331 Password required for atr_sys.
PASS siscon
230 User atr_sys logged in.
TYPE I
200 Type set to I.
PORT 10,253,253,18,4,9
200 PORT command successful.
STOR LOGIN.DAT
150 Opening BINARY mode data connection for LOGIN.DAT.
226 Transfer complete.
PORT 10,253,253,18,4,10
200 PORT command successful.
RETR LOGIN.DAT
150 Opening BINARY mode data connection for LOGIN.DAT (72 bytes).
226 Transfer complete.
PORT 10,253,253,18,4,11
200 PORT command successful.
STOR ACO.DAT
150 Opening BINARY mode data connection for ACO.DAT.
226 Transfer complete.
PORT 10,253,253,18,4,12
200 PORT command successful.
RETR ACO.DAT
150 Opening BINARY mode data connection for ACO.DAT (12204 bytes).
226 Transfer complete.
PORT 10,253,253,18,4,13
200 PORT command successful.
STOR ACO.DAT
150 Opening BINARY mode data connection for ACO.DAT.
226 Transfer complete.
PORT 10,253,253,18,4,14
200 PORT command successful.
RETR ACO.DAT
150 Opening BINARY mode data connection for ACO.DAT (12204 bytes).
226 Transfer complete.
PORT 10,253,253,18,4,15
200 PORT command successful.
STOR ACO.DAT
150 Opening BINARY mode data connection for ACO.DAT.
226 Transfer complete.
PORT 10,253,253,18,4,16
200 PORT command successful.
RETR ACO.DAT
150 Opening BINARY mode data connection for ACO.DAT (12204 bytes).
226 Transfer complete.
PORT 10,253,253,18,4,17
200 PORT command successful.
STOR ACO.DAT
150 Opening BINARY mode data connection for ACO.DAT.
226 Transfer complete.
PORT 10,253,253,18,4,18
200 PORT command successful.
RETR ACO.DAT
150 Opening BINARY mode data connection for ACO.DAT (12204 bytes).
226 Transfer complete.
PORT 10,253,253,18,4,19
200 PORT command successful.
STOR ACO.DAT
150 Opening BINARY mode data connection for ACO.DAT.
226 Transfer complete.
PORT 10,253,253,18,4,20
200 PORT command successful.
RETR ACO.DAT
150 Opening BINARY mode data connection for ACO.DAT (12204 bytes).
226 Transfer complete.
PORT 10,253,253,18,4,21
200 PORT command successful.
STOR ACO.DAT
150 Opening BINARY mode data connection for ACO.DAT.
226 Transfer complete.
PORT 10,253,253,18,4,22
200 PORT command successful.
RETR ACO.DAT
150 Opening BINARY mode data connection for ACO.DAT (5006 bytes).
226 Transfer complete.
PORT 10,253,253,18,4,23
200 PORT command successful.
STOR ACO.DAT
150 Opening BINARY mode data connection for ACO.DAT.
226 Transfer complete.
PORT 10,253,253,18,4,24
200 PORT command successful.
RETR ACO.DAT
150 Opening BINARY mode data connection for ACO.DAT (2566 bytes).
226 Transfer complete.
PORT 10,253,253,18,4,25
200 PORT command successful.
STOR ACO.DAT
150 Opening BINARY mode data connection for ACO.DAT.
226 Transfer complete.
PORT 10,253,253,18,4,26
200 PORT command successful.
RETR ACO.DAT
150 Opening BINARY mode data connection for ACO.DAT (2 bytes).
226 Transfer complete.

birumher

Delphi 7 kullanıyorsan indy componentlerini kullanabilirsin. Sitelerinde bir sürü örnek de var...
Hatta burada ftp server ve client demoları da var.
Birkan.Herguner

otm

teşekkürler.örnekleri indirdim birçoğuda vardı zaten ama hepside port komutundan sonra çalışmıyor daha doğrusu port komtunu verdiğim anda komut iptal edildi bağlantınız kesildi byee!!! diyip dışarı atıyor sistem beni :?:

birumher

Port komutunun aktif modda kullanılması gerekiyor belki kullanımıyla ilgili bir yanlış yapıyorsundur...
buraya bir bak...
Birkan.Herguner

cozturk

Indy trivial ftp çok kolay. Adres, port,  gönderilecek dosya, sunucudaki adı gibi 1-2 kolay parametre ile oluyor.. hatta sunucuya dosya gittiği zaman havada yaklalayıp kaydetmeden işlem yapabiliyorsun. memorystream halinde.
Alıntı yapılan: "otm2002"...pcnin portu diyelim 1031 olsun her bilgi alış verişinde portu 1 artırmak istiyor nedenini anlamadım yani ilk başlangıçta 1031 sonra 1032 sonra 1033 vs vs gibi.

Bu kısmına sen hiç karışmıyorsun diyelim server 127.0.0.1  ve portu 69 client  de aynı.

aynen dediğin gibi her defasında 1 artış sağlayan olay var. fakat bu sayı port no değil başka bişey.

CyberX

bencede port değildir yani o artan numrara.Eğer öyle bişey olsaydı halka açık ftp serverlarda hemen hemen her port açık kalırdı:D