Suatu hari, diadakan sayembara bagi tukang ngobrol yang
mampu berbicara dalam waktu paling lama, siapakah pemenangnya? Joko Nurjadi
PESERTA
PERTAMA adalah seorang ibu peserta arisan yang memiliki keistimewaan mampu
menceritakan sebuah kejadian yang berlangsung 5 menit menjadi berdurasi
beberapa jam, di mana sang lawan bicara sebaiknya memiliki prinsip: kuping
boleh panas, tetapi hati tetap dingin.
Peserta
kedua adalah sepasang muda-mudi yang sedang jatuh cinta dan mampu berkomunikasi
dalam waktu yang sangat lama, hingga tercipta istilah sepiring berdua dan dunia
hanya milik berdua.
Rekor
ini bertahan selama berhari-hari, setelah pasangan tersebut akhirnya memilih
diam (dan menciptakan istilah piring terbelah dua dan perang dunia kedua).
Saat
mahkota pemenang sudah akan diserahkan pada peserta kedua, muncul peserta
ketiga yang mengklaim mampu berkomunikasi 24 jam tanpa henti setiap harinya
dalam batas waktu yang tidak dapat ditentukan, mengagumkan! Sang jawara
itu bernama...socket jaringan!
Mengenal
Socket
Bayangkan
sebuah server game online yang berkomunikasi tanpa henti, dimainkan oleh entah
berapa banyak client yang tersebar. Ini merupakan salah satu contoh aplikasi
dari sekian banyak aplikasi yang menggunakan socket jaringan untuk saling
berkomunikasi dan bertukar data.
Komunikasi
socket jaringan memang tidak mengenal lelah, pertukaran data terjadi terus-menerus
dan memegang peranan vital. Jika oleh karena suatu hal komunikasi berhenti
karena maintenance, kerusakan, ataupun sebab lainnya, maka dapat dipastikan
para penggunanya akan kecewa.
Maka
dari itu, komunikasi jaringan selalu diusahakan tidak terhenti. Demikianlah
tugas berat yang harus dilakukan socket jaringan. Sebelum membahas lebih jauh,
apakah sebenarnya pengertian socket itu?
Pengertian
socket adalah interface pada jaringan yang menjadi titik komunikasi antarmesin
pada Internet Protocol, dan tentunya tanpa komunikasi ini, tidak akan ada
pertukaran data dan informasi jaringan.
Socket
terdiri dari elemen-elemen utama sebagai berikut:
1.
Protokol.
2. Local
IP.
3. Local
Port.
4. Remote
IP.
5. Remote
Port.
Dalam
komunikasi antara dua pihak, tentunya harus digunakan kesepakatan aturan dan
format yang sama agar komunikasi dapat dimengerti. Seperti halnya dua orang
yang menggunakan bahasa yang sama, maka bahasa di sini berfungsi sebagai
protokol. Protokol yang digunakan dalam socket dapat menggunakan TCP ataupun
UDP.
Contoh
komunikasi sederhana adalah komunikasi antara komputer A dan komputer B. Baik
komputer A maupun komputer B harus memiliki identitas unik, yang
direpresentasikan oleh IP masing-masing.
Komunikasi
yang terjadi melalui port, sehingga baik komputer A maupun komputer B harus
memiliki port yang dapat diakses satu sama lain.
TCP dan
UDP
Pemrograman
socket adalah cara untuk menggunakan komponen/API (Application Programming
Interface) socket untuk membuat sebuah aplikasi.
Aplikasi
socket umumnya terdiri dari dua kategori berdasarkan pengiriman datanya, yaitu:
1.
Datagram socket (menggunakan UDP).
2. Stream
socket (menggunakan TCP).
Terdapat
perlakuan yang berbeda antara UDP dan TCP, walaupun sama-sama berfungsi sebagai
protokol pertukaran data.
UDP
tidak memerlukan proses koneksi terlebih dahulu untuk dapat mengirimkan data,
paket-paket data yang dikirimkan UDP bisa jadi melalui rute yang berbeda-beda,
sehingga hasil yang diterima bisa jadi tidak berurutan.
Contohnya
jika aplikasi socket pengirim mengirimkan berturut-turut pesan 1, pesan 2, dan
pesan 3, maka aplikasi socket penerima belum tentu mendapatkan pesan yang
berurutan dimulai dari pesan 1, pesan 2, dan terakhir pesan 3. Bisa saja pesan
2 terlebih dulu diterima, menyusul pesan-pesan yang lain, atau berbagai
kemungkinan lainnya. Bahkan, dapat terjadi pesan yang dikirimkan tidak sampai
ke penerima karena kegagalan pengiriman paket data.
Tidak
demikian halnya dengan stream socket yang menggunakan TCP. Jenis ini mengharuskan
terjadinya koneksi terlebih dahulu, kemudian mengirimkan paket-paket data
secara berurutan, penerima juga dijamin akan menerima data dengan urutan yang
benar, dimulai dari data pertama yang dikirimkan hingga data terakhir. TCP
dapat menangani data yang hilang, rusak, terpecah, ataupun terduplikasi.
Dari
sekilas perbedaan ini, kita dapat menarik kesimpulan bahwa aplikasi socket yang
menggunakan TCP memerlukan pertukaran data dua arah yang valid. Sedangkan,
aplikasi socket yang menggunakan UDP lebih memprioritaskan pada pengumpulan
data.
Karena
itu aplikasi socket dengan TCP sering diterapkan untuk aplikasi chat, transfer
file, ataupun transaksi-transaksi penting. Sedangkan aplikasi socket dengan UDP
cocok diterapkan untuk aplikasi monitoring jaringan, game online, dan
aplikasi-aplikasi broadcast.
Port
Salah satu
elemen penting yang digunakan dalam aplikasi socket adalah port. Port merupakan
sebuah koneksi data virtual yang digunakan aplikasi untuk bertukar data secara
langsung.
Terdapat
banyak port di dalam sebuah sistem komputer dengan fungsinya masing-masing.
Sebagai contoh, dalam mengirim e-mail digunakan service SMTP yang umumnya
menggunakan port 25. Sementara service POP3 untuk menerima e-mail menggunakan
port 110, port 80 digunakan untuk HTTP, port 443 digunakan untuk HTTPS, dan
seterusnya.
Nomor-nomor
port dikategorikan dalam tiga jenis sebagai berikut:
1.
Well-known ports.
Merupakan port yang telah digunakan secara internal oleh
sistem Windows, misalnya port untuk koneksi Internet, service FTP, dan
seterusnya. Port yang telah digunakan ini adalah port 0 sampai dengan port
1023.
2.
Registered ports.
Port ini dapat digunakan dalam aplikasi Anda,
range-nya adalah port 1024 hingga port 49151, cukup banyak port yang tersedia
yang bebas Anda pilih sehingga Anda tidak perlu kuatir kekurangan port untuk
aplikasi Anda.
3.
Dynamic/Private ports.
Dari port 49152 sampai dengan port 65535.
Winsock
Untuk
pemrograman aplikasi socket berbasis Windows, maka komponen API yang sering
digunakan adalah Winsock (Win-dows Socket API) yang mendukung interface standar
TCP/IP, yang merupakan protokol jaringan paling popular saat ini (contoh
protokol jaringan yang lain adalah NetBIOS, IPX dari Novell, AppleTalk dari
Apple, dan seterusnya).
Pengertian
TCP/IP (TCP over IP) mungkin dapat menjadi sedikit rancu jika diartikan TCP/IP
hanya mengizinkan pengiriman TCP (dan tidak UDP), padahal seperti yang telah
kita bahas, pengiriman socket dapat melalui TCP maupun UDP.
Pengertian
TCP/IP di sini sebenarnya digunakan untuk menunjukkan teknologi
jaringan/Internet, termasuk di dalamnya adalah UDP. Jika Anda menggunakan UDP,
dapat juga disebut sebagai UDP/IP (UDP over IP), tetapi umumnya istilah ini
jarang digunakan dan istilah TCP/IP telah mencakup, baik TCP maupun UDP.
Pada
bahasa pemrograman visual seperti Visual Basic/Delphi, Anda dapat menggunakan
control Winsock yang telah disediakan untuk mengembangkan aplikasi socket.
Walaupun
kita akan mencontohkan aplikasi socket dalam environment Windows, Anda tidak
perlu khawatir jika aplikasi socket yang menggunakan Winsock tidak dapat
berkomunikasi dengan aplikasi socket berbasis Unix/Linux, karena komunikasi
tetap dapat terjadi selama aplikasi tersebut menggunakan protokol jaringan yang
sama.
Kalau
demikian, untuk mencoba aplikasi socket, apakah mutlak diperlukan setidaknya
jaringan dengan minimal dua komputer yang saling terkoneksi? Bagi Anda yang
terpaksa hanya menggunakan satu komputer, dapat memanfaatkan alamat localhost
atau 127.0.0.1 yang mengizinkan dua aplikasi berjalan pada satu mesin komputer
dan berkomunikasi satu sama lain.[1]
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.
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 komputer 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 .
Sebetulnya apa sih protocol itu? 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 sistem operasi )dapat digunakan
pula di Linux , .Net Framework, dan Win32.
Sign up here with your email
ConversionConversion EmoticonEmoticon