Tebak Warna UDP
Proyek ini adalah server sederhana yang menggunakan UDP (User Datagram Protocol) untuk berkomunikasi dengan klien. Server ini mengimplementasikan permainan di mana klien harus menebak warna yang dipilih secara acak oleh server.
- Inisialisasi Soket Server: Program membuat soket UDP dan mengikatnya ke alamat dan port tertentu.
- Fungsi
handle_game
: Menangani setiap koneksi dari klien. Mulai dari mengirim pesan selamat datang hingga memberikan poin berdasarkan jawaban yang diberikan klien. - Fungsi
accept_connections
: Menerima koneksi dari klien dan memulai permainan ketika jumlah klien mencapai batas maksimum. - Input Jumlah Maksimal Koneksi: Pengguna diminta untuk memasukkan jumlah maksimal koneksi yang diinginkan.
- Inisialisasi Objek Warna: Objek warna dibuat untuk setiap warna yang mungkin dengan metode untuk mengembalikan warna, jawaban yang benar, dan memberikan poin berdasarkan jawaban yang diberikan.
- Mulai Menerima Koneksi: Program mulai menerima koneksi dari klien dan memulai permainan saat jumlah klien terhubung mencapai batas maksimum.
- Thread untuk Setiap Klien: Untuk setiap klien yang terhubung, server membuat thread baru yang menjalankan fungsi
handle_game
. - Penutupan Soket: Setelah semua permainan selesai, soket server ditutup.
-
Inisialisasi Soket UDP: Script ini membuat soket UDP dan mengirimkan kode koneksi ke server.
-
Menerima Respons dari Server: Menerima respons awal dari server dan melakukan print.
-
Menerima Informasi Awal: Klien menerima dan mencetak pesan awal dari server terkait dengan permainan.
-
Menerima Informasi Warna: Klien menerima informasi tentang warna saat ini dan mencetaknya.
-
Memulai Thread Input: Sebuah thread terpisah dimulai untuk menunggu masukan dari pengguna.
-
Menunggu Masukan atau Timeout: Klien menunggu pengguna untuk memberikan masukan atau hingga timeout terjadi.
-
Penanganan Timeout: Jika timeout terjadi sebelum pengguna memberikan masukan, klien mengirim sinyal TIMEOUT ke server.
-
Memeriksa Hasil dari Server: Klien menerima hasil dari server dan mencetaknya.
-
Penyelesaian Program: Setelah menerima hasil dari server, klien menutup soket dan keluar.
- Jalankan program server terlebih dahulu.
- Jalankan program klien setelah server berjalan.
- Ikuti instruksi pada program klien untuk berpartisipasi dalam permainan.