Kodbank İndir

! CODEBANK 2012 !

İNDİRMEK&DETAYLI BİLGİ ALMAK İÇİN BURAYI TIKLAYINIZ.

ÖNEMLİ AÇIKLAMA: MUTLAKA OKUYUNUZ!

Gönderen Konu: Indy İle Dosya Gönderme  (Okunma sayısı 4921 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı teknolok

  • Global Moderatör
  • *****
  • İleti: 155
  • Rep: +3/-1
  • Cinsiyet: Bay
Indy İle Dosya Gönderme
« : 07 Ekim 2005 17:57:10 »
DOSYA GÖNDERME
İndy tcp bileşenlerini kullanarak chat programı yapmıştık birde bu uygulamaya dosya gönderme foksiyonu ekliyelim

                                                               CLİENT



BEN tasarımı bu şekilde yaptım dosyanın gönerim durumunu izlemek için bir tane pogressbar atın  kod aynen şöyle

Kod: Delphi
  1. procedure TForm1.FormCreate(Sender: TObject);
  2. begin
  3. bitbtn3.Enabled:=false;
  4. bitbtn2.Enabled:=false;
  5.     animate1.hide;
  6.  
  7.  
  8. end;
  9.  
  10. procedure TForm1.BitBtn1Click(Sender: TObject);
  11.  var
  12.  port:integer;
  13.  
  14. begin
  15. port:=strtoint(edit2.Text);
  16. client1.Port:=port; //unutulmaması gereken serverdeki portla aynı olması gerekir
  17. client1.Host:=(edit1.Text);
  18. client1.Connect;
  19.     if client1.Connected=true then
  20.     begin
  21.     bitbtn1.Enabled:=false;
  22.      bitbtn2.Enabled:=true;
  23.           bitbtn3.Enabled:=true;
  24.     bar1.Panels[0].Text:='baglantı sağlandı';
  25.          end;
  26.  
  27. end;
  28.  
  29. procedure TForm1.Client1Disconnected(Sender: TObject);
  30. begin
  31.     bar1.Panels[0].Text:='bağlantı koptu ';
  32.              bitbtn3.Enabled:=false;
  33.              bitbtn1.Enabled:=true;
  34.              bitbtn2.Enabled:=false;
  35. end;
  36.  
  37. procedure TForm1.BitBtn2Click(Sender: TObject);
  38. begin
  39. client1.Disconnect;
  40.  
  41. end;
  42.  
  43. procedure TForm1.BitBtn3Click(Sender: TObject);
  44. var
  45. boyut:single;
  46. dosya:tfilestream;
  47. dyol:ansistring;
  48. begin
  49. if opendialog1.Execute then
  50. begin
  51. dyol:=opendialog1.FileName;
  52.  label5.Caption:=dyol;
  53. end;
  54. dosya:=tfilestream.Create(dyol,fmopenread);
  55.  boyut:=dosya.Size;
  56.  label6.Caption:=floattostr(boyut);
  57.  client1.WriteStream(dosya);
  58.  
  59. end;
  60.       // işlem durumunu görmek için
  61. procedure TForm1.Client1WorkBegin(Sender: TObject; AWorkMode: TWorkMode;
  62.   const AWorkCountMax: Integer);
  63. begin
  64.   bar1.Panels[0].Text:='dosya gönderiliyor  ';
  65.   progressbar1.Visible:=true;
  66.    progressbar1.Position:=0;
  67.     progressbar1.Max:=AWorkCountMax;
  68.     animate1.Active:=true;
  69.     animate1.Show;
  70.      if AWorkCountMax >0 then
  71.       label7.Caption:=inttostr(AWorkCountMax);
  72.       application.ProcessMessages;
  73.  
  74.  
  75. end;
  76.  
  77. procedure TForm1.Client1WorkEnd(Sender: TObject; AWorkMode: TWorkMode);
  78. begin
  79.    bar1.Panels[0].Text:='dosya gönderildi ';
  80.     animate1.Active:=false;
  81.     animate1.Hide;
  82.    progressbar1.Visible:=false;
  83.    application.ProcessMessages;
  84.  
  85. end;
  86.  
  87. procedure TForm1.Client1Work(Sender: TObject; AWorkMode: TWorkMode;
  88.   const AWorkCount: Integer);
  89. begin
  90. if progressbar1.Max > 0 then
  91. begin
  92. label7.Caption:='durum:'+inttostr(AWorkCount)+'/'+inttostr(progressbar1.Max)+'byte';
  93. progressbar1.Position:=(AWorkCount);
  94. end
  95. else
  96. label7.Caption:=inttostr(AWorkCount)+'byte';
  97. application.ProcessMessages;
  98.  
  99. end;
  100.  
  101. end.


                                                  SERVER KISMI

Kod: Delphi
  1. procedure TForm1.FormCreate(Sender: TObject);
  2. begin
  3. server1.DefaultPort:=1111; //dinlemeye aldımız port
  4. server1.Active:=true;
  5.  
  6. end;
  7.  
  8. procedure TForm1.Server1Connect(AThread: TIdPeerThread);
  9. begin
  10. statusbar1.Panels[0].Text:=(athread.Connection.Socket.Binding.PeerIP+'numaralı kişi baglandı ');
  11.  statusbar1.Panels[1].Text:='bilgisayrın adı '+ athread.Connection.Socket.Name;
  12.  
  13.  
  14. end;
  15.  
  16. procedure TForm1.Server1Execute(AThread: TIdPeerThread);
  17. var
  18. kod:string;
  19. dosya:tfilestream;
  20. dyol:ansistring;
  21. boyut:single;
  22. begin
  23.     kod:=athread.Connection.ReadLn;
  24.   if (kod='dosya') then
  25.     begin
  26.  if   (save.Execute) then
  27.   begin                  
  28. dyol:=save.FileName;
  29.  
  30. end;
  31. dosya:=tfilestream.Create(dyol,fmcreate);
  32.   boyut:=dosya.Size;
  33.   statusbar1.Panels[0].Text:=':'+floattostr(boyut)+'boyutunda dosya alınıyor';
  34.   athread.Connection.ReadStream(dosya);
  35.   statusbar1.Panels[0].Text:='dosya gönderimi tamam';
  36. end;
  37.     end;
  38. end.
« Son Düzenleme: 28 Eylül 2008 04:55:03 by Kocaturk »
Bizim gerçek kıldıklarımıza Onların hayalleri yetişemedi ....FATİH SULTAN MEHMET HAN

Çevrimdışı ss80

  • Üye
  • ***
  • İleti: 20
  • Rep: +0/-0
Ynt: Indy İle Dosya Gönderme
« Yanıtla #1 : 28 Eylül 2008 00:05:25 »
bende calisyorum indy uzerinde fakat. tam anlayamadim. birden fazla islem istemci ile hizmetci arasinda oldugunda muhakkat danlandirma mi yapmamiz lazim. eger gerek yoksa. karsilik gelip giden verileri neye gore gonderecegiz yada aliacagiz. yani karsilikli farkli islemlerin datali nasil ayristilir.
saygilar.

Çevrimdışı akfbircan

  • Kıdemli Üye
  • *****
  • İleti: 65
  • Rep: +0/-0
Ynt: Indy İle Dosya Gönderme
« Yanıtla #2 : 19 Ekim 2008 13:44:55 »
tşkler...

Çevrimdışı Rapunzo

  • Üye
  • ***
  • İleti: 23
  • Rep: +0/-0
  • Cinsiyet: Bay
Ynt: Indy İle Dosya Gönderme
« Yanıtla #3 : 18 Mart 2009 11:34:32 »
bu componenti nereden indirebilirim, kendi sitesinde link bulamadım

Çevrimdışı teknolok

  • Global Moderatör
  • *****
  • İleti: 155
  • Rep: +3/-1
  • Cinsiyet: Bay
Ynt: Indy İle Dosya Gönderme
« Yanıtla #4 : 18 Mart 2009 13:06:18 »
indirmene gerek yok delphi 7 kullanıyorsan indy server tabında
Bizim gerçek kıldıklarımıza Onların hayalleri yetişemedi ....FATİH SULTAN MEHMET HAN

Çevrimdışı Rapunzo

  • Üye
  • ***
  • İleti: 23
  • Rep: +0/-0
  • Cinsiyet: Bay
Ynt: Indy İle Dosya Gönderme
« Yanıtla #5 : 18 Mart 2009 13:30:54 »
Teşekkürler. biraz yeniyim delphide zorlanıyorum alışmakta.

Çevrimdışı cheshme

  • Yeni Üye
  • *
  • İleti: 14
  • Rep: +1/-0
Ynt: Indy İle Dosya Gönderme
« Yanıtla #6 : 27 Temmuz 2009 16:01:26 »
 boyle koyacağınıza keşke direk dosyaları upload etseydiniz incelemek açısından daha yararlı olurdu. deneme şansım olmadı ama yine de teşekkürler...

Çevrimdışı hakkican84

  • Yeni Üye
  • *
  • İleti: 5
  • Rep: +0/-0
Ynt: Indy İle Dosya Gönderme
« Yanıtla #7 : 20 Ekim 2009 12:01:57 »
codegear 2009 ile nasıl yapabiliriz

Çevrimdışı ATMXEON

  • Üye
  • ***
  • İleti: 35
  • Rep: +0/-0
  • Cinsiyet: Bay
  • ZORU BAŞARIRIM, İMKANSIZ BİRAZ ZAMAN ALIR!
Ynt: Indy İle Dosya Gönderme
« Yanıtla #8 : 16 Ocak 2010 01:24:42 »
İyide bu proje dosya almaz ki;

mesela bir metin belgesi göndereceksin diyelim. Bi kere save dialog çalışmaz NEDEN?

Metin belgesi içerisnde tek satır "dosya" yazarsa çalışır. Fakat kaydetmeyi bitiremez. Gibi geldi. Dosya transferi baya sorunlu bir iş. Bence. FileServer lar felan var tavsiye ederim.
ZORU BAŞARIRIM, İMKANSIZ BİRAZ ZAMAN ALIR!