Anda di halaman 1dari 11

Socket Programming Delphi

Ditulis oleh Idris Sabtu, 18 April 2009 09:10

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

1 / 11

Socket Programming Delphi


Ditulis oleh Idris Sabtu, 18 April 2009 09:10

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

2 / 11

Socket Programming Delphi


Ditulis oleh Idris Sabtu, 18 April 2009 09:10

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

3 / 11

Socket Programming Delphi


Ditulis oleh Idris Sabtu, 18 April 2009 09:10

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;

4 / 11

Socket Programming Delphi


Ditulis oleh Idris Sabtu, 18 April 2009 09:10

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);

5 / 11

Socket Programming Delphi


Ditulis oleh Idris Sabtu, 18 April 2009 09:10

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;

6 / 11

Socket Programming Delphi


Ditulis oleh Idris Sabtu, 18 April 2009 09:10

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;

7 / 11

Socket Programming Delphi


Ditulis oleh Idris Sabtu, 18 April 2009 09:10

IdTCPServer.Active := True;

except on E:Exception do

ShowMessage(E.Message);

end;

finally

Bindings.Free;

end;

//setup TCPServer

8 / 11

Socket Programming Delphi


Ditulis oleh Idris Sabtu, 18 April 2009 09:10

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;

9 / 11

Socket Programming Delphi


Ditulis oleh Idris Sabtu, 18 April 2009 09:10

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

10 / 11

Socket Programming Delphi


Ditulis oleh Idris Sabtu, 18 April 2009 09:10

//mengirimkan data ke client

athreaad.connection.writeln( OK + pesan);

end;

end.

11 / 11

Anda mungkin juga menyukai