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 :
- Membuat socket dengan perintah socket()
- Mengikatkan socket kepada sebuah alamat network dengan perintah bind()
- 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
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
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
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_client.py
No comments:
Post a Comment