Wednesday, January 5, 2011

Socket Programming Delphi

Socket programming adalah bagaimana cara menggunakan socket API ( Application Socket Programming ), untuk menghubungkan komunikasi antara proses remote dan local , programmer yang menggunakan ILE ( Integrated Language Environment) C dapat menggunakan informasi untuk mengembangkan aplikasi socket . Anda juga dapat menggunakan kode socket API dari bahasa ILE lainnya , seperti RPG . JAVA juga mendukung alat penghubung untuk socket programming
Dan maksud dari API adalah sebuah library atau fungsi windows untuk mengeksekusi sebuah perintah yang ada di dalam semua tampilan windows , sebagai contoh untuk tampilan desktop ,screen saver ,shutdown computer dll
Biasanya seorang programmer yang membuat program seperti berbasiskan protocol jaringan kita sebut dia adalah programmer winsock ( windows socket ).
Winsock dapat didefinisikan dan di dokumentasikan oleh standar API untuk pemograman protocols jaringan . Umumnya digunakan untuk program TCP / IP , tetapi dapat juga digunakan untuk program novell ( IPX / SPX ) dan protocol jaringan lainnya . Winsock dapat digunakan untuk DLL ( Dynamic Link Library ) yang merupakan bagian dari Win32 .
Cara kerja dari winsock adalah perpaduan antara IP Address dan port number , lalu apa yang dimaksud dengan IP Address . IP Address adalah sebuah alamat virtual pada setiap computer untuk mengirimkan data , contoh dalam kehidupan nyata adalah setiap kita mengirim surat kita harus menyertakan alamat pengirim dan alamat tujuan , jika tidak ada maka paket tidak bisa dikirim karena tidak jelas alamat pengirim dan alamat penerima . contoh alamat IP Address adalah 192.168.1.1
Lalu yang dimaksud dengan port number ,pada pelayanan jaringan di computer , port number dapat dikatakan sebagai identifikasi khusus untuk setiap proses, contoh jika anda menggunakan layanan internet seperti google .com anda telah menggunakan port number tertentu , yaitu port 80
Jadi windows socket adalah perpaduan IP Address dan port number , contoh anda mengakses http://www.google.com , kita misalkan google.com memiliki IP Address 66.25.12.25 , sama saja anda mengakses dengan http://www.google.com:80 atau http://66.25.12.25:80 atau untuk layanan chatting seperti MIRC menggunakan port :6666 jadi cara kerja untuk mengakses MIRC adalah alamatserver:portnumber contoh kita anggap IP Address untuk alamatserver chating misalkan DALNET adalah :121.122.204.12 maka prosesnya adalah 121.122.204.12:6666
Kembali ke topic utama kita adalah Indy ( Internet direct ) , indy digunakan untuk membuat aplikasi yang menggunakan protocol jaringan
Indy ( Internet Direct )
Lalu apa indy itu ? indy adalah komponen open source yang terdiri dari protocol internet yang sudah begitu popular ,seperti HTTP , FTP , SMTP , TCP , UDP ,Gopher , Whois dan lain -lain , karena open source maka kita dapat mempelajari semua kode program yang ada untuk dikembangkan . kemudahan yang lain adalah indy mendukung protocol sampai 120 protokol , sebelumya protocol adalah aturan standar atau ketentuan dalam komunikasi jaringan , jadi dalam komunikasi jaringan sudah dibentuk aturan baku dalam proses data .
Untuk pemograman indy dapat menggunakan bahasa pemograman seperti Borland Delphi , Borland C++ builder , Visual Studio.net, C# , dan untuk platform ( berbeda system operasi ) dapat digunakan pula di Linux , .Net Framework, dan Win32.
Untuk selanjutnya penulis akan menjelaskan dengan membuat program telnet sederhana . penulis menggunakan bahasa pemograman Borland Delphi 7 dan komponen indy server ( IdTcpServer ) dan indy client ( IdTcpClient ) , penulis juga menggunakan dua form , yaitu form server dan form client . pertama adalah kita membuat perintah pada Form Client

Aplikasi Client
Pada Aplikasi Client dirancang untuk koneksi ke server , dibawah ini adalah baris untuk koneksi ke server
Procedure Tmain Form.ButtonClick (Sender:TObject );
Begin
With IdtcpClient1 do
Begin
Host:=edit1.text // masukan ip address
Port:= 3122;
connect;
end;

Untuk lebih memudahkan , maka pada saat client terhubung dengan server , di buat sebuah pesan ke client , untuk memastikan client terhubung dengan server , kode program tersebut dapat dilihat di bawah ini
Procedure TForm1.TCPClient1Connected(Sender: TObject);
begin
memo1.Lines.Insert(0,'koneksi terhubung ke server ' + edit1.Text);
//sebuah pesan di memo yang menyatakan bahwa client telah //terhubung ke erver
end;

Dari baris diatas dapat dilihat pernyataan “koneksi terhubung ke server ‘ edit1.text menyatakan nama IP Address server .
Kita juga harus menutup koneksi ke server , apabila kita sudah tidak ingin menggunakan program tersebut dan ingin keluar , aplikasi client harus secara otomatis ( istilah computer “ disconnect “) dari server , baris perintah tersebut dapat dilihat pada kode program di bawah ini
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
if tcpclient1.Connected then tcpclient1.Disconnect;
end;

Selanjutnya yang terpenting adalah komunikasi client dengan server , karena aplikasi ini adalah telnet sederhana , maka client hanya dapat mengirim pesan atau data ke server , untuk pengembangan ke hal yang lain seperti gambar ataupun suara dapat mengunjungi situsnya di Http://www.nevrona.com/indy , baris ini adalah pengiriman text dari client ke aplikasi server .

Procedure Tmainform1.Buttonclick(Sender:Tobject );
Var pesan:string;
Begin
IdTcpClient1.Writeln(edit2.text); // pesan berasal dari input user
edit2.text:=’’ // mengkosongkan edit2 supaya dapat di isi kembali
IdTcpClient1.readln(pesan);
memo1.lines.insert(0,pesan);
end;

Aplikasi Server
Setelah membuat aplikasi client ,saatnya di buat aplikasi server , untuk aplikasi server komponen yang diperlukan adalah IdTcpServer , yang digunakan untuk mengaktifkan server yang merupakan perpaduan antaa Ip Address dan port number .
Penulis menggunakan port number 3122 , jadi jika aplikasi ini dijalankan , maka gabungan nya adalah IP Address server dan 3122, contoh IP Address yang digunakan : 127.0.0.1 dan port number yang digunakan 3122 , ini artinya adalah computer dengan alamat : 127.0.0.1 membuka layanan servis telnet dengan port number : 3122

Baris perintah untuk mengaktifkan server , terdapat pada baris dibawah ini


Procedure Tform1.create ( Sender:TObject )
var
Bindings: TIdSocketHandles;
begin
//setup and start TCPServer
Bindings := TIdSocketHandles.Create(TCPServer);
try
with Bindings.Add do
begin
IP := 127.0.0.1;
Port := 3122;
end;

Try IdTCPServer.Bindings := Bindings;
IdTCPServer.Active := True;
except on E:Exception do
ShowMessage(E.Message);
end;

finally
Bindings.Free;

end;

//setup TCPServer

Baris diatas akan mengaktifkan server telnet dengan membuka port 3122 , selanjutnya adalah saat ada koneksi atau hubungan dari client , maka server akan memberikan sebuah pernyataan atau ucapan selamat datang ke client, pernyataan tersebut dapat dibuat sesuka hati . contoh pernyataan selamat datang server .

Procedure TForm1.IdtTpserver1Connect ( Athread :TIdPeerThread )
Begin
   With AThread.Connection do
   Begin
      Writeln (‘ Selamat Datang di Server Ku ‘);
      Writeln (‘ Percobaan dengan Komponen Indy ‘);
      Writeln(‘ ========================= ‘);
   end;
End;

Selanjutnya adalah balasan server ketika ada pesan atau message dari client , untuk memastikan bahwa client mengirimkan data , kode programnya dapat dilihati dibawah ini

Procedure Tform1.IdTcpServerExecute( Athread:TidPeerThread);
Var Pesan:string;
Begin
While Athread.Connection.Connected do
Begin
Pesan:=athread.Connection.readln;
//membaca data yang dikirim oleh Client , disimpan di
//variable pesan
//mengirimkan data ke client
athreaad.connection.writeln( ‘ OK’ + pesan);
end;
end.

0 comments:

Post a Comment

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by Kang Iwan K-sev | Thank's for your visit To My Site - Ridwan Mulyana | Cibeureum