Pemrograman Socket UDP Datagram

  1. 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:

  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.

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:

 

1

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 getAddress()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 :

2

 

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 perhatikan 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.

  1. 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.

3

4

 

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 le, ataupun transaksi-transaksi penting. Sedangkan aplikasi socket dengan UDP cocok diterapkan untuk aplikasi monitoring jaringan, game online, dan aplikasi-aplikasi broadcast.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: