![]() |
![]() |
![]() |
|||||||||||||||||||||||||||||||||||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
|||||||||||||||||||||||||||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
||||||||||||||||||||||||||||||||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
||||||||||||||||||||||||||||||
![]() |
![]() |
||||||||||||||||||||||||||||||||||||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
||||||||||||||||||||||||||||
DELPHİ
İLE NETWORK ÜZERİNDEN VERİ İLETİMİ
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:
formumuzun OnClose olayınıda
aşağıdaki hale çeviriniz:
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:
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:
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:
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)
Yeni
bir makalede görüşmek dileği ile…
Tarih: 23/06/2004 Hazırlayan: Mustafa KUTLU Mail: mus_kutlu@yahoo.com
bimeks borland component database delphi delphi.net delphi dersleri firebird help interbase makale oracle seminer software sybase veritabanı web |
![]() |
||||||||||||||||||||||||||||||||||||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
|||||||||||||||||||||||||||||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |