Yazar:Ziya Kahraman Eklenme: 22.09.2007 Okunma: 3233
Puan: 3.4 Seviyesi: Orta
Delphi 7'de ağ üzerinde çalışan programlar mı yapmak istiyorsunuz? O zaman bu server ve client olayını iyi anlamalı ve uygulamalısınız önce..
Şimdi örnek olarak basit chat programıyla konuya açıklık getirelim. Program iki parçadan oluşuyor. Bir parçası ana kısım olan server, diğeri de şube yani diğer bir deyişle client..
SERVER TARAFI
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Sockets, StdCtrls;
type
TForm1 = class(TForm)
TcpServer1: TTcpServer;
Label1: TLabel;
Edit1: TEdit;
Memo1: TMemo;
Label2: TLabel;
procedure TcpServer1Accept(Sender: TObject;
ClientSocket: TCustomIpClient);
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.TcpServer1Accept(Sender: TObject;
ClientSocket: TCustomIpClient);
VAR
X:String;
begin
Edit1.Text:=ClientSocket.RemoteHost;
X:=ClientSocket.Receiveln();// PORTU OKUR
Memo1.Lines.Add(X);// MEMOYA AKTARIR
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
TcpServer1.LocalPort:="20000";//string tip
TcpServer1.Active:=True; // 20000 numaralı portu dinlemeye alır
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
TcpServer1.Close;
end;
end.
CLIENT TARAFI
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, XPMan, StdCtrls, Buttons, Sockets, ComCtrls;
type
TForm1 = class(TForm)
XPManifest1: TXPManifest;
StatusBar1: TStatusBar;
Edit1: TEdit;
BitBtn1: TBitBtn;
TcpClient1: TTcpClient;
Memo1: TMemo;
procedure BitBtn1Click(Sender: TObject);
procedure TcpClient1Connect(Sender: TObject);
procedure TcpClient1Disconnect(Sender: TObject);
procedure TcpClient1Error(Sender: TObject; SocketError: Integer);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.BitBtn1Click(Sender: TObject);
VAR
A:String;
begin
A:=Memo1.Lines.Text;
TcpClient1.RemoteHost:=Edit1.Text;
TcpClient1.RemotePorT:="20000";
TcpClient1.Active:=False;
TcpClient1.Active:=True;
TcpClient1.Sendln("SELAM");
end;
procedure TForm1.TcpClient1Connect(Sender: TObject);
begin
end;
procedure TForm1.TcpClient1Disconnect(Sender: TObject);
begin
end;
procedure TForm1.TcpClient1Error(Sender: TObject; SocketError: Integer);
begin
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
end;
end.
İşte bu kadar kodları inceleyip yorumlarsanız olayı kapacağınıza eminim.. Başka türlü anlatılabilirdi belki ama uygulamalı daha iyi anlaşılacağını düşündüğüm için bu yolu tercih ettim.. Herkese başarılar..
Arkadaşlar kodlardan neler kullanıldığını çıkarmayı göstersek daha yerinde olacak galiba.. Kodlarda procedure deyiminden sonra bir nokta olur ve noktanın ardından kullanılan bileşenin adı ve numarası yazar. Eğer bileşene özel isim verilmemişse -ki örneklerimizde verilmemiştir- orijinal adından çıkarılır bileşenin ne olduğu ve numarası da kaç tane olduğunu gösterir bize.. Zira Delphi Form üzerine attığımız bileşenlere otomatik olarak 1'den başlamak üzere ismin ardından numara verir..
hocam bu işi internet üzerinden nasıl yapabilicez
ben bir program yazıyorum kısaca özet geçersek ana makınede değişiklik yapıldığında diğer uzak mesafe pclerinde yapılan değişikliğin aynen görünmesini istiyorum.Değişikliği sadece ana makınedeki kullanıcı yapabılmeli.Kullanıcılar bu programa mudahale edememli.ana makınede yazılacak, onlarda sadece görüntülenecek bu tarzda olacak programı nasıl yapabilirim.Programın internet baglantısını onlara gönderıcegim mesajları nasıl yapabilirim.Saygılar..
Dediğin şekilde bir programda server kısmı ana makine olur, client de kullanıcı olur. Kullanıcının programındaki girişleri (edit, radiobutton vs.) yazıma kapatırsın böylece onlar gönderim yapamaz, yalnızca ana makina tarafından gönderilenleri görebilirler. İnternet üzerinden yapabileceğin bir programdır bu ve bu olaydan hiç bir farklı mantık taşımaz. ip numaralarını kullanman gerekir ki bu programın da zaten mantığı budur. Kolay gelsin..
görsel dili yazılı olarak ve resim desteği olmadan anlamak zor. keşke nasıl yapıldığını görsel olarak anlatsaydın.
BU DERSE YORUM EKLEYİN
Üye olmadan yorum ekleyemezsiniz !
UYARI: SANALKURS.net'te yer alan materyaller ile ilgili her türlü sorumluluk hazırlayan veya gönderene aittir. Yazarlar, gönderdikleri makale ve derslerle başkalarını yanıltıcı bilgi veremezler. SANALKURS.net bilgilerin kullanımı sonucunda doğacak hata ve zararlardan sorumlu tutulamaz. SANALKURS.net'te yer alan bir makale link vermek ve kaynak göstermek şartıyla başka bir sitede yayınlanabilir. SANALKURS.net kullanıcıları ve üyeleri, üçüncü kişilerin telif hakkı sahibi bulunduğu hiçbir yazı, fotoğraf, resim vb. materyal ve ürünü kullanamazlar. SANALKURS.net kullanıcı ve yazarlarının, üçüncü kişilerin telif hakkı sahibi olduğu yazı, resim vb. ürünleri izinsiz kullanması durumunda, her türlü hukuki ve cezai sorumluluk kendilerine aittir.