-
Logika dan Perancangan Pogram
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:
-
Datagram socket (menggunakan UDP).
-
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.
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.
DatagramSocket adalah mekanisme Java untuk komunikasi jaringan melalui UDP. Pada Java kita menggunakan perintah DatagramSocket
baik untuk mengirim ataupun menerima UDP datagram.
Mengirim Data melalui Datagram Socket
Untuk mengirim DatagramPacket
kita
harus membuat sebuah DatagramSocket
yang ditargetkan pada saat pengiriman data. Sedangkan dalam pengiriman datanya kita memanggil method send(). Berikut adalah cara yang dilakukan:
Buffer byte (array byte) adalah data yang akan dikirim dalam datagram UDP. Panjang yang diberikan kepada DatagramPacket
konstruktor adalah panjang data dalam buffer untuk mengirim. Semua data di buffer yang melebihi jumlah tersebut akan diabaikan.
Instance
InetAddress
berisi alamat dari node dari server untuk mengirim paket UDP kepada client. Sedangkan class InetAddress
merupakan alamat IP (Alamat Internet). Method get
Address
()
mengembalikan sebuah instance InetAddress
dengan alamat IP yang cocok dengan nama host yang diberikan.
Mengirim Data melalui Datagram Socket
Menerima data melalui DatagramSocket
dilakukan dengan terlebih dahulu menciptakan sebuah DatagramPacket
,
dan kemudian menerima data ke dalamnya melalui method DatagramSocket
.
receive(
)
. Berikut adalah cara yang dilakukan :
Jika diperhatikan bagaimana DatagramSocket
di inisiasi dengan nilai parameter 8080 dilewatkan ke konstruktornya, parameter tersebut adalah port UDP yang untuk menerima paket-paket UDP pada DatagramSocket
. Seperti yang disebutkan sebelumnya, port TCP dan UDP tidak sama, sehingga dengan demikian tidak terjadi tumpang tindih. KIta dapat memiliki dua proses yang berbeda yaitu pada port TCP dan port UDP 8080, tanpa konflik apapun.
Selanjutnya pada saat pembuatan buffer byte dan DatagramPacket
,
jika kita p
erhatikan maka DatagramPacket
tidak memiliki informasi apapun tentang node untuk mengirim data, berbeda halnya saat membuat DatagramPacket
untuk mengirimkan data. Hal ini karena kita akan menggunakan DatagramPacket
untuk menerima data, tidak mengirimnya. Dengan demikian tidak ada alamat tujuan diperlukan.
-
Hasil Program
Hasil yang sukses adalah ketika komputer server bisa mengirimkan data dalam bentuk
DatagramPacket
menggunakan protokol UDP, untuk diterima oleh komputer client
, sebagaimana terlihat pada gambar di bawah ini.
Dari hasil praktikum kita dapat menarik kesimpulan bahwa aplikasi socket yang menggunakan UDP memprioritaskan pada pengumpulan data. Sedangkan aplikasi socket yang menggunakan TCP lebih memerlukan pertukaran data dua arah yang valid, sebagaimana yang kita saksikan pada praktikum minggu sebelumnya, yaitu chatting client-server.
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.
Filed under: Gundar TKM |
Leave a Reply