Tavsiyeler

Delphi ile Ağa Duyarlı Uygulamalar Yaz

Delphi ile Ağa Duyarlı Uygulamalar Yaz


We are searching data for your request:

Forums and discussions:
Manuals and reference books:
Data from registers:
Wait the end of the search in all databases.
Upon completion, a link will appear to access the found materials.

Delphi'nin ağ üzerinden veri alışverişi yapan uygulamaları (internet, intranet ve yerel) desteklemek için sağladığı tüm bileşenlerden en yaygın ikisiTServerSocket ve TClientSocketikisi de bir TCP / IP bağlantısı üzerinden okuma ve yazma işlevlerini desteklemek üzere tasarlanmıştır.

Winsock ve Delphi Soket Bileşenleri

Windows Sockets (Winsock), Windows işletim sistemi altında ağ programlaması için açık bir arayüz sağlar. Herhangi bir protokol yığınının ağ servislerine erişmek için gerekli olan bir dizi işlev, veri yapısı ve ilgili parametreler sunar. Winsock, ağ uygulamaları ile altta yatan protokol yığınları arasında bir bağlantı görevi görür.

Delphi soket bileşenleri (Winsock için sarıcılar), TCP / IP ve ilgili protokolleri kullanarak diğer sistemlerle iletişim kuran uygulamaların oluşturulmasını kolaylaştırır. Soketlerle, alttaki ağ yazılımı hakkında endişelenmeden, diğer makinelere yapılan bağlantıları okuyup yazabilirsiniz.

Delphi bileşenleri araç çubuğundaki internet paleti, TServerSocket ve TClientSocket bileşenleri yanı sıra TcpClient, TcpServer,ve TUdpSocket.

Bir soket bileşeni kullanarak soket bağlantısı başlatmak için bir ana bilgisayar ve bir bağlantı noktası belirlemelisiniz. Genel olarak, evsahibi sunucu sisteminin IP adresi için bir takma ad belirtir; Liman sunucu soketi bağlantısını tanımlayan kimlik numarasını belirtir.

Metin Göndermek İçin Basit Tek Yönlü Program

Delphi tarafından sağlanan soket bileşenlerini kullanarak basit bir örnek oluşturmak için, biri sunucu için diğeri istemci bilgisayar için iki form oluşturun. Fikir, istemcilerin sunucuya bazı metin verileri göndermelerini sağlamaktır.

Başlamak için, Delphi'yi iki kez açın, sunucu uygulaması için bir proje ve istemci için bir proje oluşturun.

Sunucu tarafı:

Bir formda, bir TServerSocket bileşeni ve bir TMemo bileşeni ekleyin. Formun OnCreate olayında, aşağıdaki kodu ekleyin:

prosedür TForm1.FormCreate (Gönderen: TObject);
başla
ServerSocket1.Port: = 23;
ServerSocket1.Active: = Doğru;
son;

OnClose olayı şunları içermelidir:

prosedür TForm1.FormClose
(Gönderen: Tobject; var Eylem: TCloseAction);
başla
ServerSocket1.Active: = false;
son;

Müşteri tarafı:

İstemci uygulaması için, bir forma bir TClientSocket, TEdit ve TButton bileşeni ekleyin. İstemci için aşağıdaki kodu ekleyin:

prosedür TForm1.FormCreate (Gönderen: TObject);
başla
ClientSocket1.Port: = 23;
// sunucunun yerel TCP / IP adresi
ClientSocket1.Host: = '192.168.167.12';
ClientSocket1.Active: = true;
son;
prosedür TForm1.FormClose (Gönderen: TObject; var Eylem: TCloseAction);
başla
ClientSocket1.Active: = false;
son;
prosedür TForm1Button1Click (Gönderen: TObject);
beginif ClientSocket1.Active sonra
ClientSocket1.Socket.SendText (Edit1.Text);
son;

Kod kendini açıklar: bir istemci bir düğmeyi tıklattığında, Edit1 bileşeninde belirtilen metin, belirtilen bağlantı noktası ve ana bilgisayar adresiyle sunucuya gönderilir.

Sunucuya Geri Dön:

Bu örnekteki son dokunuş, sunucunun istemcinin gönderdiği verileri "görmesi" için bir işlev sağlamaktır. İlgilendiğimiz olay OnClientRead'dır - sunucu soketi bir istemci soketinden bilgi okuması gerektiğinde gerçekleşir.

prosedür TForm1.ServerSocket1ClientRead (Gönderen: TObject;
Soket: TCustomWinSocket);
başla
Memo1.Lines.Add (Socket.ReceiveText);
son;

Birden fazla müşteri sunucuya veri gönderdiğinde, kodlaması için biraz daha fazlasına ihtiyacınız olacak:

prosedür TForm1.ServerSocket1ClientRead (Gönderen: TObject;
Soket: TCustomWinSocket);
var
i: tam sayı olduğu;
sRec: sicim;
beginfor i: = 0 için ServerSocket1.Socket.ActiveConnections-1 dobeginwith ServerSocket1.Socket.Connectionsi dobegin
sRec: = ReceiveText;
Eğer sRecr"thenbegin
Memo1.Lines.Add (RemoteAddress + 'gönderir:');
Memo1.Lines.Add (sRecr);
son;
son;
son;
son;

Sunucu bir istemci soketinden bilgi okuduğunda, bu metni Memo bileşenine ekler; hem metin hem de istemci RemoteAddress eklenir, böylece hangi müşterinin bilgileri gönderdiğini bilirsiniz. Daha karmaşık uygulamalarda, bilinen IP adreslerinin takma adları bir ikame edici olabilir.

Bu bileşenleri kullanan daha karmaşık bir proje için Delphi> Demolar> İnternet> Sohbet projesi. Hem sunucu hem de istemci için tek bir form (proje) kullanan basit bir ağ sohbet uygulamasıdır.



Yorumlar:

  1. Kamil

    Gerçekten ilginç bir seçim.

  2. Tojaktilar

    Çok iyi olursa!

  3. Laramie

    Bununla ilgili bir şey var ve bu harika bir fikir. Seni destekliyorum.

  4. Banbhan

    Bravo, bu mükemmel ifade sadece bu arada gerekli



Bir mesaj yaz