Hosgeldiniz
Ben Kimim?

C.V.
Bilgi paylaþtýkça çoðalýr.Ýþte ispatý,
bende var bir elma, sende var bir elma, gel elmalarý deðiþelim; bende var bir elma, sende var bir elma.

Þimdi bende var bir bilgi, sende de var bir bilgi, gel bilgileri deðiþelim; bende oldu iki bilgi, sende oldu iki bilgi.Nasýl güzel deðilmi?...

Ben bilgilerimi ortaya koyuyorum benimle bilgi zengini olmak istermisiniz?..



Kategoriler


Site nasýl olmuþ?
Daha iyi olabilirdi
Ýdare eder
Güzel
Süper
Süper ötesi...
     
Anket
Delphi 7'de server ve client olayý
9 Yil öncesi . . .
Delphi client server chat TCPServer

Benim gerçektende, iyi olduğum ve uzun zamanlar harcayarak programlar geliştirdiğim, programlama dilim Delphi 7. Pascal üzeerine oturtulmuş olan Delphi 7 gerek component'leriyle gerekse IDE bakımından gerçekten çok kullanışlı ve kolay.

Uzun zamandır Delphi ile geliştirdiğim programları koymak istiyordum. Ancak nereden başlayacağımı bilemiyordum. Bitirme projemi Network programcılığı konusunda almam ve network ile ilgili yazılar yazmam nedeniyle Delphi 7 deki ilk yayınımı basit bir chat programıyla yapmak istedim.

Bu kodlar benim delphi 7 ile ilişkimi güçlendirmişti. Çünkü 5-6 yıl öncesinde trojan yapmak geçiyordu aklımdan ama iki programın nasıl birbirleriyle iletişim kuracağını bilmiyordum. Bu kodlar elime geçince trojanımı geliştirdim.(Tabiki piyasa yaymadım. Sadece eğitim için ve kendimi geliştirmek için yapmıştım.)

tabiki bu kod sadece size çorabın sökük kısmından bir ip parçacığı verecek. Network(Ağ) programlarının mantığını anlamak ve geliştirmek için bu kodun üstüne çok şeyler koymalısınız.

Neyse işte programın kodu.Herzamanki gibi iki programdan oluşuyor. İlki Client(İstemci) programında TXPManifest,StatusBar1,Edit1,BitBtn1,TcpClient1, Memo1 componentlerini kullandım.Kodu ise:
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.


Server(Sunucu) programında TcpServer1, Label1, Edit1, Memo1, Label2 componentlerini kullandım.Kodu ise:
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.

                    Toplam Puan:65

YORUMLAR Yorum Yaz


oguz retay 12/2/2008 | 9:21:34
IdTcpCilent kullansak? arasında ne fark var.bn trojan ımı IdTcpCilent kullanarak yaptım.ama bazı pc lerde calısmadı.
 



Deniz YILDIRIM 2/12/2009 | 22:52
aslına bakarsan chat ve basit client/server programlarında farkı anlayamayız....TTCPClient componentin içinde daha kapsamlı fonksiyonlar mevcut. Aynı zamanda IdTCPClient te kullandığımız AntiFreeze kullanmamıza gerek yok(Kullanmadığımızda client tarafında kilitlenmeler oluyor.) Bazı pc lerde çalışmamasının birçk sebebi olabilir. Bunlardan bazılarını yazayım sana. İlk olarak; Client programının içine IDTcpClient componentlerini(diğer kullandığın componentleride) eklemen gerekiyor. Bu Client dosyasının boyutunu büyütür ancak her bilgisayarda çalışmasını sağlar. Bağlantıda problem varsa bunun sebebi ya firewall olabilir, yada server programını kurduğun bilgisayar ADSL ile bağlanıyorsa, büyük ihtimalle ADSL modemin içindeki router veya firewall engelliyordur. Onun ayarlarını yapman lazım. dediğim gibi sorunu tam olarak yazarsan sana daha çok yardımcı olabilirim. Bu konular hakkında çok proje yaptım. Ondan dolayı bu konularda çok deneyimliyim.
 



Adem aa 5/19/2009 | 18:57
Merhaba delphi client/server hakinda daha detayli bilgi verebilir misiniz?