Socket Programming dengan 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
Server
Client
Output

Pada program diatas 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
Server
Client
Output
Mengimport 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
Server
Client
Output
Pada program ini 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.


Comments