Socket Programming

Socket Programming      

 

Penggunaan socket programming memungkinkan adanya komunikasi antara client dan server.Salah satu contoh sederhana penggunaan socket programming adalah pembuatan program untuk chatting.Program tersebut sebenarnya merupakan bentuk aplikasi berupa komunikasi antara client dan server.Ketika seorang user(client) melakukan koneksi ke chat server,program akan membuka koneksi ke port yang diberikan, sehingga server perlu membuka socket pada port tersebut dan “mendengarkan” koneksi yang datang.Socket sendiri merupakan gabungan antara host-adress dan port adress.Dalam hal ini socket digunakan untuk komunikasi antara client dan server.Penggambaran cara bagaimana client dan server berkomunikasi akan saya berikan melalui contoh script yang sangat sederhana berikut:

 

 

Script program untuk client:

 

 

#!/usr/bin/perl

# Program Client menggunakan perl

use IO::Socket;

 

my $socket = IO::Socket::INET->new(Proto => ‘tcp’,

                                   PeerAddr => ‘127.0.0.1’,

                                   PeerPort => 1234) or die $!;

 

 

print “Jika ingin berhenti ketikkan: keluar\n “;

print “————————————\n”;

while (1){

        print “Masukan pesan: “;

        $pesan = <>;

        $socket->send($pesan);

        $socket->recv($recvpesan,80);

        print “Terima dari server: $recvpesan\n”;

        exit if $recvpesan eq “keluar”;

}

 

Script program untuk server:

 

#!/usr/bin/perl

# Program Server menggunakan perl

use IO::Socket;

 

$listen = IO::Socket::INET->new(Proto => ‘tcp’,

LocalPort => 1234,

Listen => 1) or die $!;

 

print (“Server sedang berjalan…\n”);

$socket = $listen->accept;

 

while ($pesan ne “keluar”){

$socket->recv($pesan,80);

chop $pesan;

$socket->send(“isi pesan >> $pesan”);

}

 

 

Kedua program tersebut menggunakan  IO::Socket untuk pembentukan socket yang akan digunakan berkomunikasi.

 

Proto digunakan untuk memilih protokol jaringan yang digunakan.Protokol yang sering digunakan dalam internet adalah TCP dan UDP.Dalam hal ini saya memilih menggunakan TCP (Transmission Control Protocol).Bisa juga digunakan protokol UDP (User Datagram Prototocol).TCP bersifat connection oriented dan relieable, sedangkan UDP bersifat connectionless.TCP mempunyai kemampuan untuk melakukan verifikasi dan mengirimkan ulang data yang hilang.

 

PeerAddr => ‘127.0.0.1’ .PeerAddr yang digunakan kali ini adalah peeraddr   local (localhost).Jika program ini dijalankan di internet, PeerAddr ini bisa juga diisi dengan nama  domain  ataupun alamat IPnya.Dalam lingkup lokal komputer kita, selain menggunakan IP tersebut(127.0.0.1), bisa juga diisi dengan ‘localhost’.

 

PeerPort = 1234.Sebenarnya alamat peerport ini bisa berupa nomor, misalnya 2323,7551,7552,dsb atau bisa juga berupa symbolic service name.

 

Pada program server, cara untuk membentuk socket meliputi protokol,peer port dsb dilakukan dengan cara dan alamat yang sama.Listen digunakan untuk “mendengarkan” koneksi yang datang ke port tersebut.

 

Logika pemrogramannya sangat sederhana untuk dipahami sehingga sebenarnya tidak perlu saya tuliskan, namun secara garis besarnya akan saya paparkan sbb:

 

Client akan melakukan looping terus menerus selama server masih aktif mendengarkan koneksi dan akan berhenti ketika menerima output balik dari server berupa kata “keluar” .Ketika user mengetikkan input string, maka akan dibaca sebagai $pesan dan kemudian dikirimkan ke server.Kemudian server yang menerima masukan itu mengirimkannya kembali ke client, demikian seterusnya hingga data yang dikirimkan client berupa kata “keluar”, maka looping di server untuk mengirimkan data ke client juga akan berhenti.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s