Sunday, October 23, 2022

Modul 5 : Pertemuan 6 (Socket Programming dengan UDP)

 Pemrograman Socket dengan UDP


1.1 Tujuan

Konsep client-server merupakan dasar dari setiap transaksi yang terjadi pada setiap aplikasi jaringan. Socket merupakan antarmuka antara application process dan transport layer. Socket merupakan

1.2 Dasar Teori

mekanisme yang memungkinkan terjadinya pertukaran data antar program atau proses baik dalam satu mesin maupun antar mesin. User Datagram Protocol (UDP) merupakan connectionless protocol yang cocok/ sesuai untuk aplikasi yang membutuhkan komunikasi yang efisien yang tidak memperhatikan packet loss. Untuk membuat sebuah aplikasi client-server dengan menggunakan protokol UDP terdapat beberapa langkah dasar yang harus dilakukan, yaitu sebagai berikut.

Langkah – langkah dasar di client :

  • Membuka koneksi client ke server, yang di dalamnya adalah :
  • Membuat socket dengan perintah socket()
  • Melakukan pengalamatan ke server.
  • Menghubungi server dengan connect()
  • Melakukan komunikasi (mengirim dan menerima data), dengan menggunakan perintah sendto() dan recvfrom()
  • Menutup hubungan dengan perintah close();

Langkah – langkah dasar di server :

  1. Membuat socket dengan perintah socket()
  2. Mengikatkan socket kepada sebuah alamat network dengan perintah bind()
  3. Melakukan komunikasi (mengirim dan menerima data), dengan menggunakan perintah sendto() dan recvfrom()
Tugas Pendahuluan
1) Jelaskan cara kerja dari protocol UDP
Terdapat sebuah channel yang berfungsi sebagai penghubung host untuk dapat bertukar data. Channel tersebut membutuhkan sebuah aplikasi di perangkat untuk bisa tersambung ke UDP sekaligus menyediakan IP dan nomor port dari host tujuan. Kemudian UDP akan mengirimkan beberapa data dalam waktu yang bersamaan.

2) Jelaskan algoritma dasar socket programming dari sisi client dan server
Model  yang  umum    diterapkan  dalam  jaringan  komputer  adalah  model client/server. Konsepnya  sederhana,  sebuah  aplikasi  client  melakukan  permintaan  untuk  suatu layanan  (service)  informasi  atau  mengirim  sebuah  perintah  ke  suatu  aplikasi  server. Aplikasi   server   akan   menerima   permintaan   dari   client,   kemudian   memproses berdasarkan permintaan tersebut. Dari hasil pemrosesan yang sudah dilakukan, aplikasi server akan mengembalikan hasil pemrosesan tersebut ke aplikasi client.  Sehingga  pada  prinsipnya  aplikasi  server  dalam  status  menunggu  (listen) permintaan  dari  aplikasi  client,  sedangkan  client  mencoba  membuat  koneksi  (connect) ke server. Aplikasi  client  melakukan  koneksi  ke  server  melalui  sebuah  alamat socket.Alamat socket adalah kombinasi dari alamat IP dan nomor port. Contoh alamat socket adalah  192.168.1.30:80,  dimana  nomer  80  adalah  nomer  portnya.    Jika  alamat  IP diibaratkan sebuah nomer telepon, maka nomer port adalah nomer ekstensinya. 

Percobaan 

    udp_server.py
    
    Analisa:
Pada program diatas menentukan size dari buffer dengan variabel maxsize, proses pengiriman data kepada client yang sudah tersambung. Sehingga dapat didefinisikan variabel sock sebagai socket dengan parameter AF_INET dan SOCK_DGRAM sebagai datagram UDP

    udp_client.py
    
Analisa:
Pada program diatas merupakan inisialisasi buffer size dengan variabel MAX_SIZE dan inisialisasi pada port. Fungsi pengiriman data menggunakan perintah sendto()

    udp_server2.py
    
Analisa:
Pada program diatas untuk mengimport library argparse untuk parsing dan library socket. Untuk membuat fungsi server dengan parameter port perintah def server(port). Proses binding dengan parameter IP localhost dan port yang telah ditentukan dan proses pengiriman data dengan sendto().

    udp_client2.py
    
Analisa:
Pada program diatas untuk mengimport library argparse dan socket dan mengimport library datetime untuk fungsi menampilkan waktu. Kita dapat membuat fungsi client dengan parameter port. Pada saat menampung value untuk menampilkan waktu saat ini dengan variabel text. Sehingga decode untuk data dari hasil listening kedalam variabel text baru dapat menampilkan data dan address.

Latihan:
1. Modifikasi udp_server2.py dan udp_client2.py menjadi server yang mengirimkan informasi waktu ke client

    lat1_udp_server2.py

    lat1_udp_client2.py

2. Buatlah program client dan server dimana client dapat menerima pertanyaan dari server dan mengirimkan kembali jawaban dari user ke server (seperti latihan tcp). Port ditentukan melalui argument command line.

     lat2_udp_server.py



    lat2_udp_client.py

3. Buatlah program client dan server dimana server menyediakan layanan perhitungan luas bangun datar (persegi, persegi panjang, segitiga), client dapat memilih jenis bangun datar dan mengirimkan informasi ukuran (sisi untuk persegi, panjang dan luas untuk persegi panjang dan segitiga) untuk perhitungan, kemudian menampilkan hasil dari server.

   lat3_udp_server.py



    lat3_udp_client.py

4. Buatlah program dimana client mengirimkan username dan password ke server, kemudian di sisi server dilakukan apakah username dan password yang dikirimkan oleh client valid atau tidak. Jika valid maka server akan merespon dengan mengirimkan konfirmasi bahwa login berhasil dengan menggunakan protocol UDP

    lat4_udp_server.py

    lat4_udp_client.py















No comments:

Post a Comment