
HOŞGELDİNİZ , Toplam : 1527
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)
Sizden önce 7734 kişi okudu.
İlk yorumu yazan siz olmak ister misiniz?
Atom Nedir ?
Bilgisayar
Virüslerden Nasıl Korunuruz ?
Arama Motorları ve Hukuki Durumları
İnternette hız rekoru kırıldı
MSN Nickleri
MSN ifadeleri
Random Quit
Kanaldaki +i modunu istediğin nicke yansıtmamak
Who nedir, nasıl kullanılır
Sabit sürücü nedir?
DVD sürücü nedir?
Disket sürücü nedir?
CD Sürücü nedir?
Yeni Intel işlemciler 2008'de
Desibel Nedir
Kondansatör
Güç kaynağı nedir?
Japonlar dünyanın en hafif dijital kamerasını üretti
Adım Adım Panel Televizyonlar
Bazı atıkların denizde yok olma süreleri
İnsan Sesi Nasıl Oluşur ?
Ezop Kimdir ?
Okyanus Ne Kadar Derindir?
Türk Tarihinde İlk Kadınlar
Terimler (Piksel, Rezolasyon, Anti-aliasing)
Photoshop ile Template düzenlemek
Photoshop Dersleri(insanı uzaylıya çevirme)
Photoshop Dersleri(Yıldırım Yapımı)
Photoshop Dersleri(Alevli Yazı Yapımı)
Güvenlik duvarı (firewall) nedir?
Bilgisayarımızdaki virüsleri temizleyelim.
Sanal dünyada oltaya gelmeyin
Virüslü sevgililer günü maili
Mono's XSP ASP.NET Sunucusunda Güvenlik Açığı
Unix
İşletim sistemi nedir?
Microsoft Tahiti Beta'yı deniyor
Microsoft tazminata mahkum oldu
Korsan Windows ta milat 20 Şubat
bilgisayar.tv uzantılı ücretsiz 2 gb mail
Elektronik posta sunucusu
Posta hesaplarının oluşturulması ve yönetimi
Hotmailiniz 2GB'a Çıkarın ve Hotmail Beta'ya Sahip Olun
SMTP Local Mail Kurulumu
MSN Avatarları
MessengerDiscovery Live 1.2.0211
Mail MSN Hacklenme yada çalınma durumlarında yapılması gerekenler
Msn e Format
MSN yüklemeden internet üzerinden mesajlaşma
Japonya Yeni Bir İnternet Arıyor
Multimedia nedir?
İnternet tehlike altında
Windows XP de ADSL hızını artıralım.
Türk Telekom ADSL hızını yükseltmeye hazırlanıyor.
Alone in the Dark
Knightonline Levellara Göre Görevler
Knightonline Kullanıcı Ara Yüzü
Click&Buy üyelik alımı(adım adım anlatım)
Ogame Başlangıç Taktikleri
Tune up utilities 2006
Winamp ta ses kalitesi nasıl yükseltilir
Kamerayla çektiğimiz görüntüleri DVD olarak kaydedelim
Windowsunuzu tek tık ile hızlandırın
Resimlerinizi ASCII Karakterlere dönüştürün
Dosya Uzantıları ve Açıklamaları
Delphi ile Network Üzerinden Veri İletimi
Delphi de Dosya Arama Fonksiyonları
Delphi′de TIniFile ve TRegIniFile Bileşenleri
Asp ile Cookie Yaratmak
Arama Motoru Optimizasyonu (Arama dışı optimizasyon)
Meta tag SEO Optimization
Lycos' a Php Nuke 7.6 Kurulumu
Joomla Kurulumu ve Yönetimi
Web Sitesi ve CGI Uygulamalarinin Güvenligi
13 Kentte Dijital Yayin 6 Ay içindeBaşlar
Antenler Tarihe Karışacak
Vestel Aphro Menü Key Dosyası Polsat Ok 05-01-2007
Goldmaster 4000-9000 Serisi Yukleme Programları
Goldmaster 8000-10200 Serisi Yukleme Programları
Yaz sıcakları ve gebelik
Gebelikte seyahat
Gebelik planlaması
Doğum sonrası depresyon
Çalışan kadın ve hamilelik