CST234 Network Programming [Pengaturcaraan Rangkaian]

Similar documents
UNIVERSITI SAINS MALAYSIA. CST234 Network Programming [Pengaturcaraan Rangkaian]

UNIVERSITI SAINS MALAYSIA. CMT322/CMM323 Web Engineering & Technologies [Kejuruteraan & Teknologi Web]

UNIVERSITI SAINS MALAYSIA. CST332 Internet Protocols. Architecture & Routing [Protokol, Seni Bina & Penghalaan Internet]

UNIVERSITI SAINS MALAYSIA. CST232 Operating Systems [Sistem Pengendalian]

UNIVERSITI SAINS MALAYSIA. CST333 Distributed & Grid Computing [Perkomputeran Teragih & Grid]

UNIVERSITI SAINS MALAYSIA. CPT344 Computer Vision & Image Processing [Penglihatan Komputer & Pemprosesan Imej]

UNIVERSITI SAINS MALAYSIA. CPT111/CPM111 Principles of Programming [Prinsip Pengaturcaraan]

UNIVERSITI SAINS MALAYSIA. CST331 Principles of Parallel & Distributed Programming [Prinsip Pengaturcaraan Selari & Teragih]

MSS 317 Coding Theory [Teori Pengekodan]

UNIVERSITI SAINS MALAYSIA. CST231/CSM331 Data Communications & Networks [Komunikasi Data & Rangkaian]

UNIVERSITI SAINS MALAYSIA. CCS521 Advanced Distributed Systems Concepts and Design [Konsep dan Reka Bentuk Sistem Teragih Maju]

UNIVERSITI SAINS MALAYSIA. CPT113 Programming Methodology & Data Structures [Metodologi Pengaturcaraan & Struktur Data]

UNIVERSITI SAINS MALAYSIA. CST334 Network Monitoring & Security [Pengawasan & Keselamatan Rangkaian]

UNIVERSITI SAINS MALAYSIA. CCS522 Advanced Data Communication & Computer Networks [Rangkaian Komputer & Komunikasi Data Lanjutan]

UNIVERSITI SAINS MALAYSIA. CCS522 Advanced Data Communication and Computer Networks [Rangkaian Komputer dan Komunikasi Data Lanjutan]

UNIVERSITI SAINS MALAYSIA. Peperiksaan Semester Pertama Sidang Akademik 2003/2004. September/Oktober 2003

UNIVERSITI SAINS MALAYSIA. CPT211-CPM313 Programming Language Concepts & Paradigm [Konsep & Paradigma Bahasa Pengaturcaraan]

UNIVERSITI SAINS MALAYSIA. CST331 Principles of Parallel & Distributed Programming [Prinsip Pengaturcaraan Selari & Teragih]

UNIVERSITI SAINS MALAYSIA

EEE 428 SISTEM KOMPUTER

UNIVERSITI SAINS MALAYSIA. CST131 Computer Organisation [Organisasi Komputer]

MSS 318 Discrete Mathematics [Matematik Diskret]

UNIVERSITI SAINS MALAYSIA. CMT422 Multimedia Information Systems & Management [Sistem & Pengurusan Maklumat Multimedia]

UNIVERSITI SAINS MALAYSIA. CPT111 Principles of Programming [Prinsip Pengaturcaraan]

...a- JEE ELEKTRONIK DIGIT II. UNlVERSlTl SAINS MALAYSIA. Peperiksaan Semester Kedua Sidang Akademik FebruarVMac 2003.

CPT111/CPM111 Principles of Programming [Prinsip Pengaturcaraan]

COMBINING TABLES. Akademi Audit Negara. CAATs ASAS ACL / 1

UNIVERSITI SAINS MALAYSIA. CMT224/CMM221 Multimedia Systems [Sistem Multimedia]

CPT211/CPM313 Programming Language Concepts & Paradigms [Konsep & Paradigma Bahasa Pengaturcaraan]

UNIVERSITI SAINS MALAYSIA. CST131 Computer Organisation [Organisasi Komputer]

CPT212 Design & Analysis of Algorithms [Reka Bentuk & Analisis Algoritma]

INSTRUCTION: This section consists of FOUR (4) structured questions. Answer ALL questions.

INSTRUCTION: This section consists of FOUR (4) structured questions. Answer ALL questions.

UNIVERSITI SAINS MALAYSIA. CMT324 Computer Graphics & Visual Computing [Grafik Komputer & Perkomputeran Visual]

ssk 2023 asas komunikasi dan rangkaian TOPIK 4.0 PENGALAMATAN RANGKAIAN Minggu 11

UNIVERSITI SAINS MALAYSIA. CPT341 Software Design & Architecture [Reka Bentuk & Seni Bina Perisian]

UNIVERSITI SAINS MALAYSIA. CCS513 Computer Vision and Image Analysis [Penglihatan Komputer dan Analisis Imej]

INSTRUCTION: This section consists of TWO (2) questions. Answer ALL questions. ARAHAN: Bahagian ini mengandungi DUA (2) soalan. Jawab SEMUA soalan.

MULTIMEDIA COLLEGE JALAN GURNEY KIRI KUALA LUMPUR

UNIVERSITI SAINS MALAYSIA. CST131 Computer Organisation [Organisasi Komputer]

UNIVERSITI SAINS MALAYSIA. CCS523 Computer Security & Cryptography [Keselamatan Komputer & Kriptografi]

Pengenalan Sistem Maklumat Dalam Pendidikan

INSTRUCTION: This section consists of TWO (2) structured questions. Answer ALL questions.

INSTRUCTION: This section consists of TWO (2) short answer and structured essay questions. Answer ALL questions.

MAT 181 Programming For Scientific Applications [Pengaturcaraan Untuk Penggunaan Sains]

MAT 181 Programming for Scientific Applications [Pengaturcaraan untuk Penggunaan Sains]

EEE 348 PENGANTAR REKABENTUK LITAR BERSEPADU

INSTRUCTION: This section consists of TEN (10) structured questions. Answer ALL questions.

INSTRUCTION: This section consists of TWO (2) structured questions. Answer ALL questions.

INSTRUCTION: This section consists of FOUR (4) structured questions. Answer ALL questions.

UNIVERSITI SAINS MALAYSIA. CPT103/CPM211 Struktur Data & Paradigma Pengaturcaraan

PANDUAN PENGGUNA (PENTADBIR SYSTEM/SYSTEM ADMINISTRATOR) (INFOTECH, BPPF DAN POLIS

PART A SULIT (EKT 221) BAHAGIAN A. Answer ALL questions. Question 1. a) Briefly explain the concept of Clock Gating.

UNIVERSITI SAINS MALAYSIA. CST432 Microprocessors & Embedded Systems [Mikropemproses & Sistem Terbenam]

Pengguna akan diberikan Username dan Password oleh Administrator untuk login sebagai admin/conference Manager bagi conference yang akan diadakan.

MAT181 Programming For Scientific Applications [Pengaturcaraan Untuk Penggunaan Sains]

INSTRUCTION: This section consists of FOUR (4) structured questions. Answer ALL questions.

EEE348 INTRODUCTION TO INTEGRATED CIRCUIT DESIGN (PENGANTAR REKABENTUK LITAR BERSEPADU)

CCS592 Advanced Algorithms and Complexity [Algoritma Lanjutan & Kekompleksan]

PANDUAN PENGGUNA (SUPPLIER) e-purchase ORDER FOR SERVICES

INSTRUCTION: This section consists of FOUR (4) questions. Answer ALL questions. ARAHAN: Bahagian ini mengandungi EMPAT (4) soalan. Jawab SEMUA soalan.

UNIVERSITI SAINS MALAYSIA. CST232 Operating Systems [Sistem Pengendalian]

UNIVERSITI SAINS MALAYSIA. CPT103/ CPM211 Struktur Data & Paradigma Pengaturcaraan

PANDUAN PENGGUNA (PENSYARAH)

Panduan Menggunakan Autoresponder FreeAutobot.com

CST432 Microprocessors & Embedded Systems [Mikropemproses & Sistem Terbenam]

UNIVERSITI SAINS MALAYSIA. CPT103 Struktur Data & Paradigma Pengaturcaraan

INSTRUCTION: This section consists of TWO (2) structured questions. Answer ALL questions.

MICROSOFT EXCEL. Membina Hamparan Elektronik Fungsi Hamparan Elektronik

UNIVERSITI SAINS MALAYSIA. CST431/CST335 Systems Security & Protection [Keselamatan & Perlindungan Sistem]

INSTRUCTION: This section consists of TWO (2)short answers and TWO (2) structured essays. Answer ALL questions.

Lab 4 : Sorting Techniques

Semester 2, Computer Communication 352 Module 4

Semasa buku ini ditulis XAMPP mengandungi empat versi:

MULTIMEDIA COLLEGE JALAN GURNEY KIRI KUALA LUMPUR

INSTRUCTION: This section consists of TWO (2) questions. Answer ALL questions. ARAHAN: Bahagian ini mengandungi DUA (2) soalan. Jawab SEMUA soalan.

PANDUAN PENGGUNA (SUPPLIER) MAINTAIN CERTIFICATES/SUPPLIER DETAILS SUPPLIER RELATIONSHIP MANAGEMENT SUPPLY CHAIN MANAGEMENT SYSTEM (SCMS)

UNIVERSITI SAINS MALAYSIA. CMT322/CMM323 Web Engineering & Technologies [Kejuruteraan & Teknologi Web]

UNIVERSITI SAINS MALAYSIA. CPT212 Design & Analysis of Algorithms [Reka Bentuk & Analisis Algoritma]

PANDUAN PENGGUNA (SUPPLIER) MAINTAIN CERTIFICATES/SUPPLIER DETAILS SUPPLIER RELATIONSHIP MANAGEMENT SUPPLY CHAIN MANAGEMENT SYSTEM (SCMS)

INSTRUCTION: This section consists of TWO (2) structured questions. Answer ALL questions.

MAT 181 Programming For Scientific Applications [Pengaturcaraan Untuk Penggunaan Sains]

B,8 PERKHIDMATAN KREDIT DAN PERBANKAN. Pemindahan Data PROSEDUR UNIT KOMPUTER. BPKP/KlOK-117 Bilangan Semakan : 0 Tarikh : PERUBAHAN.

UNIVERSITI SAINS MALAYSIA. CST334 Network Monitoring & Security [Pengawasan & Keselamatan Rangkaian]

TEKNOLOGI, GADJET & KEIBUBAPAAN

Panduan Guru Maker UNO/ Arduino

UNIVERSITI SAINS MALAYSIA. CPT101 Prinsip-Prinsip Pengaturcaraan

UNIVERSITI SAINS MALAYSIA. CCS523 Computer Security & Cryptography [Keselamatan Komputer & Kriptografi]

IMPLEMENTATION OF UNMANNED AERIAL VEHICLE MOVING OBJECT DETECTION ALGORITHM ON INTEL ATOM EMBEDDED SYSTEM

INSTRUCTION: This section consists of TWO (2) structured questions. Answer ALL questions.

EEE 355 ROBOTIC & AUTOMATION [Robotik & Pengautomatan]

REGISTRATION GUIDE MCIS CUSTOMER PORTAL. Page 1

FIRST TIME LOGIN & SELF REGISTRATION USER GUIDE LOG MASUK KALI PERTAMA & PENDAFTARAN SENDIRI PANDUAN PENGGUNA

Manual Pengguna. PCN Online Service Fulfillment System

EEM 312 ROBOTIK & PENGLIHATAN MESIN

Introduction to Client-Server Model

PEPERIKSAAN PERCUBAAN SIJIL PELAJARAN MALAYSIA /1

MANAGE COURSE RESOURCES LABEL TEXT PAGE URL BOOK FILE FOLDER IMS CONTENT PACKAGE

Panduan Pengguna Autodesk Education Community

DOKUMEN TIDAK TERKAWAL

Transcription:

Second Semester Examination 2016/2017 Academic Session June 2017 CST234 Network Programming [Pengaturcaraan Rangkaian] Duration : 2 hours [Masa : 2 jam] INSTRUCTIONS TO CANDIDATE: [ARAHAN KEPADA CALON:] Please ensure that this examination paper contains FOUR questions in SEVEN printed pages before you begin the examination. [Sila pastikan bahawa kertas peperiksaan ini mengandungi EMPAT soalan di dalam TUJUH muka surat yang bercetak sebelum anda memulakan peperiksaan ini.] Answer ALL questions. [Jawab SEMUA soalan.] You may answer the questions either in English or in Bahasa Malaysia. [Anda dibenarkan menjawab soalan sama ada dalam bahasa Inggeris atau bahasa Malaysia.] In the event of any discrepancies, the English version shall be used. [Sekiranya terdapat sebarang percanggahan pada soalan peperiksaan, versi bahasa Inggeris hendaklah diguna pakai.]...2/-

- 2-1. (a) Figure 1 (on page 7) shows two different echo clients A and B. The source code given does not contain any errors and is working fine. Rajah 1 (pada muka surat 7) menunjukkan dua pelanggan gema berbeza A dan B. Kod sumber yang diberikan tidak mengandungi sebarang ralat dan beroperasi dengan baik. Client B uses Connect() function (line 18), but A does not. Why the difference? Pelanggan B menggunakan fungsi Connect() (baris 18), tetapi A tidak. Mengapa berbeza? Client A uses Sendto() function (line 33), but B uses Writen() (line 33), Why the difference? Pelanggan A menggunakan fungsi Sendto() (baris 33), tetapi B menggunakan Writen() (baris 33). Mengapa berbeza? What will happen when client A tries to send data to a UDP echo server which is running its echo service on a different/unknown port (i.e. not 2345)? Apa akan berlaku apabila pelanggan A cuba menghantar maklumat kepada pelayan gema UDP yang melaksanakan perkhidmatan gemanya pada port yang berbeza/tidak diketahui (iaitu bukan 2345)? (iv) What will happen when client B tries to send data to a TCP echo server which is running its echo service on a different/unknown port (i.e. not 2345)? Apa akan berlaku apabila pelanggan B cuba menghantar maklumat kepada pelayan gema TCP yang melaksanakan perkhidmatan gemanya pada port yang berbeza/tidak diketahui (iaitu bukan 2345)? (20/100) Can an IPv4 client communicate with an IPv6 server using sockets? If yes, explain how it can be done. If no, explain why it is not possible. Bolehkah suatu pelanggan IPv4 berkomunikasi dengan suatu pelayan IPv6 menggunakan soket? Jika ya, terangkan bagaimana ia boleh dilakukan. Jika tidak, terangkan mengapa ia mustahil. (5/100)...3/-

- 3-2. (a) Briefly compare the following. Banding secara ringkas yang berikut. inet_aton() function and inet_pton() function fungsi inet_aton() dan fungsi inet_pton() close() function and shutdown() function fungsi close() dan fungsi shutdown() UDP socket and TCP socket soket UDP dan soket TCP (iv) IPv4 server and IPv6 dual-stack server pelayan IPv4 dan pelayan IPv6 dwi-timbunan (v) DNS A record and DNS AAAA record rekod A DNS dan rekod AAAA DNS One of the functions used in socket programming is accept(). Salah satu fungsi yang digunakan dalam pengaturcaraan rangkaian ialah accept(). Who uses accept() client or server program? Siapa gunakan accept() atur cara pelanggan atau pelayan? What is the task performed by accept()? Apakah tugas yang dilaksanakan oleh accept()? What will happen if accept() is not used? Apa akan berlaku jika accept() tidak digunakan? (c) Explain the role played by Domain Name System (DNS) in a client-server application. Terangkan peranan yang dimainkan oleh Sistem Nama Domain (DNS) dalam aplikasi pelanggan-pelayan. (5/100)...4/-

- 4-3. (a) Assume a server is playing a number-guessing game with multiple clients simultaneously, as following. Anggap suatu pelayan sedang bermain permainan teka-nombor dengan berbilang pelanggan secara serentak seperti berkut. Server Pelayan Select a random number (different for each client). Pilih suatu nombor rawak (berbeza untuk setiap pelanggan). Receive guess from client and check for correct answer. Menerima tekaan dari pelanggan dan memeriksa jawapan betul. If the guess is correct, end the game for that client and store the number of tries it has taken. Jika tekaan adalah betul, tamatkan permainan untuk pelanggan itu dan simpan bilangan percubaan yang diambilnya. If guess is wrong, give hint to help client make correct guess (i.e. too high, too low, almost there, a little more, a little less, etc.). Jika tekaan adalah salah, berikan petunjuk untuk membantu pelanggan meneka dengan betul (contoh: terlalu tinggi, terlalu rendah, hampirhampir, lebih sedikit, kurang sedikit, dan sebagainya). Once all clients completed their games, compare performance of clients (i.e. which client guessed correctly in least number of tries) and announce the winner to all clients. Apabila semua pelanggan telah menamatkan permainan, banding pencapaian pelanggan (contoh: pelanggan mana yang meneka dengan tepat menggunakan bilangan percubaan yang terendah) dan mengumumkan pemenang kepada semua pelanggan. Client(s) Pelanggan(-pelanggan) Send guess to server. Hantar tekaan kepada pelayan. If wrong, use the hints given by server to try again. Jika salah, gunakan petunjuk yang diberikan oleh pelayan untuk cuba sekali lagi. If correct, wait for announcement of winner by server. Jika betul, tunggu pengumuman pemenang oleh pelayan. In your opinion, should this server use fork() or select() function to manage its clients? Dalam pandangan anda, pelayan ini patut gunakan fungsi fork() atau select() untuk mengurus pelanggan-pelanggannya? Does this client need to use select() function? Perlukah pelanggan ini menggunakan fungsi select()? Explain each answer. Terangkan setiap jawapan....5/-

- 5 - For each of the following error messages, indicate what causes it and who (client, server or both) receives it. Untuk setiap mesej ralat berikut, nyatakan apa yang menyebabkannya dan siapa (pelanggan, pelayan atau kedua-duanya) yang menerimanya. ECONNRESET ECONNREFUSED ETIMEOUT (c) Following is a list of common socket options: Berikut ialah senarai opsyen soket yang sering digunakan: SO_BROADCAST, SO_DONTROUTE, SO_KEEPALIVE, SO_LINGER, SO_RCVBUF, SO_RCVLOWAT, SO_SNDLOWAT, SO_REUSEADDR, IP_TOS, IP_TTL, IPV6_V6ONLY, TCP_MAXSEG, TCP_NODELAY. Which socket option ensures the connection between client and server remains open even when no data has been exchanged between them for some time? Opsyen soket manakah yang memastikan sambungan di antara pelanggan dan pelayan tetap terbuka sungguhpun tiada data yang mengalir di antara mereka untuk suatu tempoh masa? Which socket option determines how far a data packet can travel? Opsyen soket manakah yang menentukan berapa jauh suatu bingkisan data boleh bergerak? Which socket option manages TCP s flow control? Opsyen soket manakah yang mengurus kawalan aliran TCP? (iv) Which socket option is normally used with close() function? Opsyen soket manakah yang biasa digunakan bersama fungsi close()? (v) Which socket option ensures enough free space is available before data is sent out? Opsyen soket manakah yang memastikan ruang kosong mencukupi sebelum data dihantar? (5/100)...6/-

- 6-4. (a) A client-server application may communicate in various modes, such as unicast, anycast, multicast and broadcast. Suatu aplikasi pelanggan-pelayan mungkin berkomunikasi menggunakan pelbagai mod, seperti unicast, anycast, multicast dan broadcast. Briefly describe each of these modes, showing how they differ from one another. Terangkan secara ringkas setiap mod ini, menunjukkan bagaimana mereka berbeza di antara satu sama lain. Broadcasting is not commonly used in client-server applications. In your opinion, what could be the reason? Broadcasting tidak biasa digunakan dalam aplikasi pelanggan-pelayan. Dalam pandangan anda, apakah alasan yang mungkin? Threads are widely used in client and server applications. Bebenang digunakan secara meluasnya dalam aplikasi-aplikasi pelanggan dan pelayan. Describe two (2) advantages of using threads. Terangkan dua (2) kebaikan menggunakan bebenang. Describe two (2) disadvantages of using threads. Terangkan dua (2) keburukan menggunakan bebenang. Which part of Echo Client B in Figure 1 can be threaded? Justify your answer. Bahagian mana Pelanggan Gema B dalam Rajah 1 boleh dijadikan bebenang? Berikan alasan untuk jawapan anda. (15/100)...7/-

- 7-1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 #include "unp.h" int main (int argc, char **argv) int sockfd; struct sockaddr_in servaddr; Echo Client A Pelanggan Gema A if (argc!= 2) err_quit("usage: tcpcli <IPaddress>"); sockfd = Socket(AF_INET, SOCK_DGRAM, 0); bzero(&servaddr, sizeof(servaddr)); servaddr.sin_family = AF_INET; servaddr.sin_port = htons(2345); Inet_pton(AF_INET, argv[1], &servaddr.sin_addr); str_cli_a(stdin, sockfd, (SA *) &servaddr, sizeof(servaddr)); exit(0); void str_cli_a (FILE *fp, int sockfd, const SA *pservaddr, socklen_t servlen) int n; char sendline[maxline], recvline[maxline]; while (Fgets(sendline, MAXLINE, fp)!= NULL) Sendto(sockfd, sendline, strlen(sendline), 0, pservaddr, servlen); n = Recvfrom(sockfd, recvline MAXLINE, 0,NULL, NULL); if (n==0) err_quit("str_cli: server terminated prematurely"); recvline[n] = 0; Fputs(recvline, stdout); 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 #include "unp.h" Echo Client B Pelanggan Gema B int main (int argc, char **argv) int sockfd; struct sockaddr_in servaddr; if (argc!= 2) err_quit("usage: tcpcli <IPaddress>"); sockfd = Socket(AF_INET, SOCK_STREAM, 0); bzero(&servaddr, sizeof(servaddr)); servaddr.sin_family = AF_INET; servaddr.sin_port = htons(2345); Inet_pton(AF_INET, argv[1], &servaddr.sin_addr); Connect(sockfd, (SA *) &servaddr, sizeof(servaddr)); str_cli_b(stdin, sockfd); exit(0); void str_cli_b (FILE *fp, int sockfd) int n; char sendline[maxline], recvline[maxline]; while (Fgets(sendline, MAXLINE, fp)!= NULL) Writen(sockfd, sendline, strlen(sendline)); n = Readline(sockfd, recvline, MAXLINE); if (n==0) err_quit("str_cli: server terminated prematurely"); Fputs(recvline, stdout); Figure 1 Rajah 1 - ooooooo -