Anasayfa Kullanıcı Kontrol Paneli Kullanıcı Listesi Takvim Üye Ol/Register  
Language Yeni Mesajlar Yanıtlanmamış Konular Vadi Blog Zirvedekiler Referanslar Üye Atlası Reklam Yönetim
 


Geri Dön   ForumVadisi > Bilgisayar > Programlama
ForumVadisi Kuruluşunun 3.Yılında, Hep Aynı Tadında! Bazı insanlar vardır ki çok şey ifade ederler... Korootkit.1.6_1719 Cars The Videogame ~ No Rapid Cobra 11 Burning Wheels ~ No Rapid Joint Operations: Typhoon Rising ~ No Rapid Transferde inanılmaz olay! Kadıköy'de Timsah Avı: 2-0 10. Dalga Gözaltıları İstanbul'da DivX Pro v7.0.0 - Final Vazgeçtiğinde... Buluş [YARDIM] Duvara Asılan Fanus Çok Şık Spagettiye Özel Çatal Ahşap Dinlenme Koltukları Marine Heavy Gunner: Vietnam Fermuarlı Lamba Atlı Tasarımlar Ağlayan bebeği nasıl sakinleştirirsiniz? Pullar üzerinde sanat Yugi-oh Oyununu Arıyorum Gradius collection Ünlü psikoloğa canlı yayında tokat UEFA Pavlov'a acımadı London Donovan Bayern'de Ümit Karan Gerçekleri ! Dolar günü yükselişle kapadı Denizli'den tek kurşun Konya kupa'ya veda etti. Büyüleyici stiliyle: Nebahat Çehre Ankaragücü'ne kupa morali Tergan'da 2009'un Rengi Kırmızı Tita Antalyaspor'da Diallo Hacettepe'de Gaz sorunu sıcak çatışma habercisi FFXIII'ün yüksek kalitede "oyun içi" taramaları Street Fighter IV için yeni ekran görüntüleri yayımlandı. Fallout 3 yapımcısından GOW3 ve Final Fantasy yorumu Lord of the Rings Conquest'in PC demosu halen yok! Earthrise'ın beta kayıtları başladı Insomniac Killzone 2'yi sevdi! PS3 indirimi suya düştü! Yeni Wiiware oyunu duyuruldu İlk Forza 3 resimleri internete sızdı! Microsoft, 28 Milyon Xbox 360 satışını onayladı PS3'ün satışları tatil sezonuyla birlikte %130 arttı Gears of War 2'nin yaması yakında geliyor StarCraft II Terrans: Wings of Liberty'den 3 yeni ekran görüntüsü İsrail'e meydan okuyan tek adam Bu toplar nereye gidiyor.. Gercekten çok enteresan.. KeoPS Çay__çaydanlık,kahve gifleri Vurulduktan 35 yıl sonra öldü Her şey Ümraniye'de başladı... Savcı Öz'den Güney'e 37 soru "3 Saat", 16-21 Aralık Klavye içinde bir PC Sera etkisi yapan gazlar uzaydan izlenecek Suya Akan Kan Kerbela.... Hindistan cevizinden otomobil parçası üretildi Titreşimli resim yapma Ateşkeste son durum ; Filistinde Barışı Koruma Görevi TÜRKİYE'nin Ruhsal Güç Testi... Bu sabah yapılan operasyonda Emekli yarbayın evinden cephanelik çıktı..!! SON DAKİKA ; İsrail ateşkes önerisini kabul etti. Karışık Wallpaperler cok hoslar Hapse Girenlerin İnanılmaz Değişimi... Total Video Converter v3.20.090104 Ekrana kilitleyen Filistin duası Polonya'da 7 kişi donarak öldü Avanslar yüzde 90 üzerinden yapılacak Bilim dünyasında süper buluş: İlaç Otobüsü Türk gemisi serbest bırakıldı! Yeni klavye ve fareler göz dolduruyor Erdoğanın yanına bırakmazmış SSK'lılar ilaçları parayla mı alacaklar? Chp'den 'demirel'le Sezer Gözaltına Alınacak' Iması Peki nedir bu Misket bombası ??? Acı demeyin! Yiyin kanserden korunun Astronomlar teleskopun 400. yılında Galileo'yu anacak Gülümseyin, bu kalem sizi kaydediyor Balık hafızasının süresi 5 ay çıktı ''Gazze saldırıları Obama'nın İsrail'e hediyesi'' Bilim dünyasında süper buluş Dünya'nın en hızlı motosikleti Pembe iguana Polis Sabih Kanadoğlu'nun Evinde GAZZE'DE SON DURUM: 666 ÖLÜ ve fotoğraflar Lost 3. Sezon Türkçe Her hafta güncellenecek... Bombardımana her gün 3 saatlik ara! Pkk Kürt Kültürünün Ve Sanatının Gelişmesini Engelliyor Rus yetkili, Hamas Lideri Meşal ile görüştü İşte Çin Zekası :: KURNAZ ÇOBAN KOYUN SÜRÜSÜNÜ KURT POSTERİYLE GÜDÜYOR Registry Clean Expert v4.64 Biyografi......HADİSE AÇIKGÖZ Hadise'nin Düm Tek'i çalıntı Mı? Göce Köftesi [Etsiz Köfte] Lafa Bak!. Avrupa'da Soyunana Saygı Duyulur, Burada Soyunmaya Değmez Köfte Şiş Evlilik Yaşı Işte Dünyayı şoka Sokan Israil Vahşetinin Acı Görüntüleri!..
Cevapla
 
Konu Araçları
Eski 19-11-2008, 23:04   #1 (Kalıcı Bağlantı)
▀▄▀▄RaP▄▀▄▀
 
mythbusters Kullanıcısının Avatarı
 

Delphi Ile Network Üzerinden Veri İletimi

Delphi bizlere ağ üzerinden veri iletimini sağlayan birçok nesne sunmaktadır (Internet, intranet, local). Bu makalede 2 Delphi bileşeni üzerinde inceleme yapacağız: TserverSocket ve TclientSocket. Bu iki bileşen TCP/IP bağlantıda okuma ve yazma işlemleri için tasarlanmıştır. Bu makalede ağ üzerinde iletişim kuran basit bir uygulama yapacağız.

Winsock ve Delphi soket bileşenleri
Windows soketleri veya Winsock, Microsoft Windows altında network programlama için bir açık arayüzdür. Winsock, protokol yığın servislerine ulaşabilmek için bize bir takım fonksiyonlar, veri yapıları v.b. imkanlar sunar.

Delphi soket bileşenleri, başka sistemlerle TCP/IP üzerinden ve ilgili diğer protokoller aracılığı ile iletişim kuran uygulamalar yazmanızı sağlar. Soketleri kullanarak, bağlantı üzerinden, nasıl bir network yapısının varolduğu hakkında herhangi bir endişeye kapılmadan diğer makinalarile haberleşmek mümkündür.
TServerSocket ve TClientSocket bileşenleri ile TcpClient, TcpServer ve TudpSocket bileşenleri Delphi bileşen araç çubuğunun Internet paletinde yer almaktadır.

Belirli bir network üzerinde özel bir servise nasıl ulaşılır
En basit cevap; Client makine servise mesaj göndermek için izine sahiptir ve gönderimden sonra karşıdan cevap bekler. Bir network de bunu yapmanın (gönderme veya okuma) en pratik yolu soketleri kullanmaktır.

Porlar ve Hostlar
Bir soket bağlantısı için, soket bileşeni kullanılır. Host ve port belirli yapılara sahiptir. Genelde host, server sisteminin IP adresi için bir takma ad belirtir (Alias). Port ise, server soket bağlantı numarısı olan ID yi belirtir.
Basit bir TEK-YÖN gönderim yapan program
Şimdi bu uygulamayı Socket bileşenlerini kullanarak nasıl yaptığımıza bir bakalım. İki form oluşturacağız. Birisi SERVER için diğeri CLIENT bilgisayarımız için olacak. Amacımız; Client makinadan TEXT yazısını SERVER makinamıza göndermek olacak.
Başlamadan once, Delphi�yi 2 kez çalıştırın. Bir projeyi Client uygulama için diğerinide Server uygulama için kullanacağız.
SERVER tarafı
Formumuzun üzerinde bir tane TServerSocket bileşeni ve bir tane de Tmemo bileşeni koyunuz. Görünümümüz şu şekilde olacaktır:


Ve formumuzun OnCreate olayını aşağıdaki şekilde oluşturunuz:
procedure TForm1.FormCreate(Sender: TObject); begin ServerSocket1.Port := 23; //port numaramız ServerSocket1.Active := True; //soketimizi aktif yaptık end;
formumuzun OnClose olayınıda aşağıdaki hale çeviriniz:
procedure TForm1.FormClose (Sender: TObject; var Action: TCloseAction); begin ServerSocket1.Active := false; //Aktifliğini iptal ediyoruz. end;
CLIENT tarafı
Client uygulamamız için, bir tane TClientSocket, bir tane Tedit ve bir tanede Tbutton bileşenini formumuza ekleyelim. Formumuz aşağıdaki gibi görünecektir:


Bu formumuzun da kodlarını aşağıdaki şekilde oluşturalım:
procedure TForm1.FormCreate(Sender: TObject); begin ClientSocket1.Port := 23; ClientSocket1.Host := �10.9.5.1'; //Bölgesel TCP/IP server adresi ClientSocket1.Active := true; //Soketimizi aktif yaptık end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin ClientSocket1.Active := false; //Soketimizi pasif yaptık end; procedure TForm1.Button1Click(Sender: TObject); begin if ClientSocket1.Active then //Eğer soketimiz aktif ise ClientSocket1.Socket.SendText(Edit1.Text); //Edit ın içeriğini gönderiyoruz end;

Zaten kod kendini çok basit bir şekilde ifade ediyor. Client tarafından butonumuza basıldığında Edit1�in içeriğindeki Text ifade, belirlenmiş port ve host adresi ile Server�ımıza gönderilecektir.

SERVER�a geri dönelim
Bu örnek için son uygulamamız şu olcak: Server�a veri gönderen Client�ları görelim. Bunun için OnClientRead olayını kullanacaz. Bu olay Server soketi Client�tan bir veri okuduğu anda gerçekleşecektir.
Bu kodumuzda (Server formumuzda) şu şekilde olacaktır:
procedure Tform1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket); begin Memo1.Lines.Add(Socket.ReceiveText); end;
Kolaydı değil mi J Elbette! Ama programımız sağlıklı çalışmayacaktır. Çünkü birden fazla Client makina Server�a veri göndermeye kalkarsa ne olcak? Bu durumda kodumuzda ufak tefek bir kaç değişiklik işimizi görecektir:


procedure TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket); var i:integer; //Client makina sayısı için text : string; //Gelen veriyi okumak için begin for i := 0 to ServerSocket1.Socket.ActiveConnections-1 do begin with ServerSocket1.Socket.Connections[i] do begin text := ReceiveText; //okunan veri sRec� e atanır. if text <> '' then //eğer text boş değil ise begin Memo1.Lines.Add(RemoteAddress + ' sends :'; //Gönderenin adresi Memo1.Lines.Add(text); //ve gönderdiği Text Memo�ya eklenir. end; end; end; end;
Hepsi bu. Server bir Client soketten bir veri okuduğunda, Client�ın adresini ve göndermiş olduğu veriyi Memo bileşenine ekler. Memo�muzunda görünümü aşağıdaki gibi olacaktır.



NOT: Eğer ilk olarak Client formunu çalıştırırsanız, daha server ile bağlantı kurulmadığından bir hata ile karşılaşabilirsiniz. Bunun için öncelikle Server Formunu ardından da Client formunu çalıştırmanız gerekmektedir. (Bu uygulama için)
__________________
----
---
--

İmza resmi fLy a Aittir.Güzel çalışma için Teşekkürler.
Her zaman mutluluğun doruğundayken gülünmez, bazen sırf hayata gıcıklık olsun diye uçurum kenarındayken bile gülümseyeceksin.
Huzuru Bozmaya çalışanın huzurunu bozarım.... (Anlayana)

------
Statü: Çevrimdışı
 
Alıntı Yaparak Cevapla
Google Reklamları
Cevapla

Konu Araçları


Benzer Konular
Konu Konu Yazarı Forum Cevaplar Son Mesaj
Delphi'ye Giriş V!kO Programlama 13 16-11-2008 20:48
Network Hakkında Açıklamalar . ŁǿЯD OMéŃ İnternet ve Network 3 31-07-2007 14:11
LiNuX-Unix HaKKıNDa:::Tarihçesi-Gelişimi Vb... The Squealer Linux İşletim Sistemi 0 29-04-2006 02:30
Temel Ag Yapilari... belloni Program Kullanım Kılavuzu 0 10-10-2005 23:45
Network nedir? HADES İnternet ve Network 0 03-05-2005 11:54

ForumVadisi vBulletin yazılımı kullanmaktadır.
Yazılımın tüm hakları ©2000 - 2007, Jelsoft Enterprises Ltd.'e aittir.
Search Engine Optimization by vBSEO 3.1.0
Site üzerindeki yapılandırma ve içeriğin tüm hakları ©2005 - 2007 ForumVadisi'ne aittir.
Bilgi için:info@forumvadisi.com




[Çıkış: 72.27 Kb. Sıkıştırıldıktan Sonra: 70.35 Kb. Tasarruf: 1.91 Kb. (2.65%)]