Praktikum 8 Socket Programming Multiplexing

Modul 7 

Multiplexing


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. Multiplexing adalah cara menangani beberapa klien dalam satu proses server. Aplikasi ini memungkinkan klien untuk terhubung ke server dan menambahkannya ke watch list. Watch list hanyalah sebuah array deskriptor soket. Kemudian sistem operasi memberitahu aplikasi klien (jika ada) yang perlu dilayani atau jika klien baru telah membuat koneksi. Untuk menangani permintaan dari client, server menggunakan fungsi select(). Fungsi select() merupakan sebuah fungsi sistem yang memungkinkan programmer untuk menentukan socket descriptor yang akan digunakan.


Percobaan

Program 1

Pada program diatas kita mengimport sys, time , select dari library select, socket dari library socket kemudian menggunakan tcp SOCK_STREAM , terdapat hostname, dan port 50007, terdapat codingan yang membuat port +=1 ketika terhubung, ini berguna untuk menghandle dua atau lebih client yang berbeda port socket. ketika terhubung maka server mengeluarkan output connect beserta address dan socket dari client, dan di bagian client keluar output hello network world dan beserta waktu.


Program 2

kita import socket, select (library untuk input output multiplexing) dan sys, pada codingan ini terdapat descriptor dari array socket yang akan digunakan pada server untuk connect kepada masing masing client, di sisi client terdapat address 127,0,0,1 dan port 32768, ketika client dan server terhubung maka server akan keluar output server echo created dan informasi setiap client telah terkoneksi dengan server, di sisi client akan keluar output bahwa client telah terhubung ke server melalui localhost.


Program 3

Pada program ini kita mengimport selectors dan socket, menginisialisasikan sel menjadi selector default, terdapat fungsi accept, untuk menerima socket dari client menggunakan sel, kemudian ada fungsi read untuk membaca sel dari masing masing client. Pada client terdapat host localhost dan port 12345, berisi inputan hostname dan port dari user untuk terhubung ke server, ketika terhubung user menginputkan payload dan kondisi apakah client ingin mengirimkan data lagi, ketika y maka dilakukan perulangan menginputkan payload, ketika n maka program berhenti. Output pada server ialah berisi informasi bahwa sudah terhubung ke client dan data dari sel setiap client kemudian berisi output dari inputan data dari client.


Latihan

1. Buat kembali program diatas dengan menggunakan program udp

2. Buatlah program calculator sederhana dengan protokol tcp dimana client mengirimkan soal (cth: 2+2), dan server membalas dengan hasil perhitungan (cth: 4), program client kemudian menampilkan hasil dari server dan siap menerima inputan soal baru. Program client akan berhenti jika menerima inputan cancel. Gunakan multiplexing pada program server agar dapat menangani lebih dari 1 client secara bersamaan.

3. Buatlah kembali program sesuai dengan spesifikasi soal 2 dengan protokol udp.

Comments

Popular posts from this blog

Praktikum 15 - Threat Modeling

Pertemuan 12 Socket Programming Gui dengan Python