Multirecipient

.Dasar Teori

Konsep client-server merupakan dasar dari setiap transaksi yang terjadi pada setiap aplikasi jaringan. Socket merupakan antarmuka antara application process dan transport layer. Setelah sebelumnya kita mempelajari beberapa metode untuk penanganan request dari banyak client ke server, maka muncul pertanyaan Bagaimana Jika kita akan mengirimkan data ke banyak penerima? Ada beberapa solusi yang dapat diterapkan diantaranya adalah menggunakan fasilitas yang disediakan oleh jaringan yaitu broadcast dan multicast. Dalam penerapannya metode broadcast dan multicast sendiri memiliki keterbatasan, yaitu:

  • Hanya UDP socket yang dapat melakukan broadcast dan multicast
  • Broadcast hanya mencakup lingkup lokal, biasanya jaringan area local (LAN).
  • Multicast di seluruh Internet saat ini tidak didukung oleh sebagian besar penyedia layanan Internet.

Broadcast merupakan pengiriman data dengan tujuan semua alamat yang berada dalam 1 jaringan. Aplikasi akan mengirimkan data ke alamat broadcast, apabila data dikirim ke alamat ini maka semua host yang berada dalam jaringan tersebut akan menerima data. Sebelum mengirimkan data ke alamat broadcast, maka kita harus meminta “izin” kepada sistem untuk melakukan broadcast dengan men-set opsi SO_BROADCAST harus pada sisi pengirim. Berbeda dengan broadcast, multicast merupakan pengiriman data dengan tujuan alamat group dalam 1 jaringan. Pada prakteknya dalam pemrograman tidak perlu set permission untuk multicast. Multicast sender dapat men set nilai TTL untuk mengirimkan datagram. Langkah-langkah yang harus dilakukan dalam pemrograman untuk melakukan broadcast maupun multicast pada dasarnya sama dengan pemrograman menggunakan UDP, namun pada broadcast perlu penambahan socket option SO_BROADCAST, sehingga sistem mengizinkan untuk melakukan broadcast.

.Percobaan

Program 1
Server

Client

Output

Pada program diatas mengimport library socket dan time, pada bagian server terdapat koneksi socket menggunakan UDP kemudian menggunakan reuseport dan broadcast dari library socket , terdapat timeout yaitu delay pesan yang dikirim dan diterima dan terdapat message yang akan dikirimkan ke client. pada program client sama halnya dengan server akan tetapi berbeda pada bind yaitu menghubungkan server dan client , lalu pada client terdapat program recv untuk menerima pesan dari server. pada outputnya akan menampilkan bagian server akan mengirimkan message secara terus menerus selama timeout yang telah di tentukan tadi, kemudian pada client terdapat tampilan message yang diterima oleh server.


Program 2
Server

Client

Output

Pada program diatas mengimport library socket, struct dan sys. pada bagian server terdapat message yang akan dikirimkan ke client, lalu menggunakan multicastgroup yang telah di tetapkan, kemudian menggunakan koneksi socket UDP, terdapat timeout yaitu delay pesan yang dikirim dan diterima, kemudian ada struct dari library struct, terdapat codingan mengirimkan message dengan menggunakan multicast_group kemudian server dapat menerima pesan bahwa pesan dari server ke client sudah diterima dengan pesan "ack" lalu socket ditutup. pada program client mengimport library socket, struct dan sys. menginisialisasikan alamat dari multicast_group dan server address, terdapat codingan untuk menerima pesan dari server kemudian client mengirimkan pesan "ack" ketika pesan berhasil diterima dari server ke client. pada outputnya akan menampilkan bagian server mengirimkan pesan ke client dan menunggu menerima pesan dari client, lalu pada sisi client akan menerima pesan dari server , lalu mengirimkan pesan acknowledgement dari client ke server.



Comments