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.
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.