Ads 468x60px

Smaller time frame always follow the bigger time frame. It's better wait be patience to enter in position than risk with BIG SL. Having strong trading discipline and taking losses when necessary is a sign of serious trading approach

Wednesday, May 9, 2012

Socket Programming

 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



                                                                                                               1 / 11


----------------------- Page 2-----------------------

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


----------------------- Page 3-----------------------

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


----------------------- Page 4-----------------------

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


----------------------- Page 5-----------------------

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


----------------------- Page 6-----------------------

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


----------------------- Page 7-----------------------

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


----------------------- Page 8-----------------------

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


----------------------- Page 9-----------------------

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


----------------------- Page 10-----------------------

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


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


comments