Arsitektur Client-Server Forking
1.2 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. Merupakan cara tradisional untuk menangani multiple clients. Ketika sebuah aplikasi memanggil fork (), maka dibuat copyan dari calling program, sampai ke program counter(PC), dan child process baru dimulai dengan copyan tsb.
Hasil kembalian dari fork() : sekali dalam program pemanggil dan waktu berikutnya dalam child process. Nilai kembalian dalam program pemanggil adalah PID dari child process baru, sementara dalam child process itu adalah 0.
1.3 Percobaan
Program 1
Server1.py
Client1.py
forking-server.py
forking-client.py
Hasil Program
Program 3
tcp_server_forking.py
tcp_client.py
Hasil Program
Analisa:
Pada program diatas setiap client yang terkonek memberikan id yang berbeda beda. While True maka akan menjalankan fungsi client_sock.recv() pada variabel data dan jika variabel data kosong atau nilainya sama dengan “END” maka program break atau selesai.
1.4 Latihan
1. Modifikasi program-program tersebut diatas, sehingga dapat mencatat/ menampilkan waktu yang dibutuhkan untuk mengirimkan data dari client
lat1_tcp_client_forking.py2. 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 forking pada program server agar dapat menangani lebih dari 1 client secara bersamaan.
latihan2_server.py
latihan2_client.py
3. Buatlah program client dan server menggunakan forking untuk permasalahan berikut: Sebuah perusahaan menggaji pegawai sales berdasarkan komisi. Seorang pegawai sales akan menerima $200/minggu ditambah 9% dari total penjualannya selama seminggu. Contoh: Andi berhasil melakukan penjualan sebesar $3000/minggu, maka total gaji yang diterima tiap minggu = $200 + 9%*$3000 = $470. Program harus menggunakan fungsi calculateSalary untuk menghitung gaji yang diterima oleh setiap pegawai. Client akan mengirimkan informasi nama pegawai, dan total penjualan selama seminggu. Kemudian server akan mengirimkan kembali total gaji yang diterima pegawai. Output disisi client nama pegawai, total penjualan dan total gaji yang diterima pegawai.
lat3_server.py
4. Buatlah kembali program sesuai dengan spesifikasi soal 2 dengan protokol udp.
No comments:
Post a Comment