Pendahuluan
Pada Delphi, khususnya Delphi 6 terdapat komponen yang berfungsi untuk
komunikasi antara 2 komputer atau lebih yang terhubung melalui jaringan. Untuk
program Delphi yang akan kita buat ini terdapat 2 aplikasi, yaitu aplikasi
client dan aplikasi server. Kedua komponen tersebut adalah ClientSocket dan
ServerSocket yang terdapat pada Component Pallete tab Internet, seperti pada
gambar berikut:
Aplikasi remote shutdown ini adalah pengembangan dari aplikasi chatting
client-server yang dibuat dengan Delphi juga. Banyak artikel-artikel, blog-blog
maupun forum diskusi delphi yang membahas aplikasi client server tersebut. Cara
kerjanya sangat sederhana sekali, dimana terdapat dua buah aplikasi yaitu
aplikasi client dan aplikasi server. Aplikasi server dijalankan pada komputer
yang akan di kendalikan atau komputer yang akan di remote, sedangkan aplikasi
client dijalankan oleh user di sebuah komputer pengendali. Prinsip kerjanya
sangat sederhana, layaknya aplikasi chatting sederhana, aplikasi client
mengirimkan sebuah text, yang nantinya akan diterima oleh aplikasi server
sebagai sebuah “string”, kemudian akan diolah menjadi sebuah perintah baru,
yaitu men-shutdown komputer server. Sederhana sekali bukan???
Mungkin sedikit keterangan di atas dapat memberikan gambaran tentang cara
kerja aplikasi yang sangat sederhana dan jauh dari sempurna ini, khususnya bagi
para pemula seperti saya. Karena saya juga masih dalam tahap belajar dan sangat
membutuhkan masukan dari teman-teman dan para master Delphi.
Ok, Langsung meluncur ke pembuatan programnya, persiapannya cukup seadanya
saja: Komputer atau laptop yang terinstal Boland Delphi (Versinya terserah
anda, saya menggunakan Borland Delphi 6), Niat dan kemauan belajar, apalagi
ya?? è Secangkir kopi + Rokok atau snack juga boleh (opsional) hehehehe ……..
Remote Shutdown
Aplikasi ini terbagi menjadi 2, yaitu aplikasi client dan aplikasi server.
Aplikasi Client adalah aplikasi pengendali atau pengontrol, sedangkan aplikasi
server adalah aplikasi yang di jalankan pada komputer yang ingin di kendalikan
(komputer yang ingin di shutdown)
Source Code Program Client :
Berikut ini adalah source code lengkap untuk program client, ScreenShoot
program jadinya bisa dilihat pada gambar berikut:
unit RSClient;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, WinXP, ScktComp;
type
TForm1 = class(TForm)
GroupBox1: TGroupBox;
Edit1: TEdit;
Button1: TButton;
StaticText1: TStaticText;
StaticText2: TStaticText;
Button2: TButton;
Button3: TButton;
WinXP1: TWinXP;
ClientSocket1: TClientSocket;
procedure Button3Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure ClientSocket1Error(Sender: TObject; Socket: TCustomWinSocket;
ErrorEvent: TErrorEvent; var ErrorCode: Integer);
procedure ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button3Click(Sender: TObject);
begin
application.Terminate; // keluar program
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
clientsocket1.Host:=edit1.Text; // alamat ip server
clientsocket1.Active:=true; // mengaktifkan /
membuka socket sisi client
clientsocket1.Port:=1880; //
menggunakan port 1880
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
button2.Enabled:=false; // saat aplikasi mulai dijalankan
button shutdown di disable
end;
procedure TForm1.ClientSocket1Error(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer); //saat soket client error
begin
button2.Enabled:=false; //disable button shutdown
showmessage(‘Error On Socket’); //menampilkan pesan error
end;
procedure TForm1.ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket); //saat sudah terhubung ke server
begin
statictext2.Caption:=’Connected to Server’; //keterangan bahwa
sudah terhubung ke server
button2.Enabled:=true; // button shutdown di aktifkan
end;
procedure TForm1.Button2Click(Sender: TObject);
begin //button shutdown
if (clientsocket1.Socket.Connected) then //saat soket terhubung maka
clientsocket1.Socket.SendText(‘shutdown’); // button 2 mengirim string ke
server
end;
end.
Source Code Program Server :
Berikut ini adalah source code lengkap untuk program server, ScreenShoot
program jadinya bisa dilihat pada gambar berikut:
unit RSServer;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ScktComp, WinXP;
type
TForm1 = class(TForm)
WinXP1: TWinXP;
ServerSocket1: TServerSocket;
StaticText1: TStaticText;
Edit1: TEdit;
procedure FormCreate(Sender: TObject);
procedure ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
procedure Edit1Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
serversocket1.Open; //membuka soket server
serversocket1.Port:=1880; //menggunakan port 1880
end;
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
begin
edit1.Text:=socket.ReceiveText;
end;
procedure TForm1.Edit1Change(Sender: TObject);
begin
if edit1.Text=’shutdown’ then //bila edit1.text berisi text shutdown
maka,
begin winexec(‘shutdown -r -t 0 -f’,sw_normal); end; //perintah
shutdown dijalankan
end;
end.
Tidak ada komentar:
Posting Komentar