Laporan Socket Programming dengan Multitasking/Forking pada Pertemuan 7
Arsitektur Client-Server Forking
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.
Percobaan
Program 1
program server
program client
pada program ini client dan server langsung terhubung dan ketika server dijalan kan terlebih dahulu lalu selanjutnya client maka server langsung merespon connection successful tanpa membuat host di saat proses running.
program server
program client
pada program ini berbeda dengan yang pertama pada perbedaan nya yaitu program ini dapat menginputkan nama client dari program client dan bisa langsung ditampilkan ke hasil running server.
Program 3
program server
program client
pada program ini ada beberapa perbedaan client yang berhubungan dengan server melalui port dan host yang sama client dapat menginputkan payload dan memproses didalam server.
Latihan
1. Modifikasi program-program tersebut diatas, sehingga dapat mencatat/ menampilkan waktu yang dibutuhkan untuk mengirimkan data dari client
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 forking pada program server agar dapat menangani lebih dari 1 client secara bersamaan.
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.
4. Buatlah kembali program sesuai dengan spesifikasi soal 2 dengan protokol udp.
Comments
Post a Comment