You are on page 1of 4

Bi tp ln mn Mng nng cao Dnh cho sinh vin kha K52 Quy nh chung: sinh vin t chn mt trong

cc bi c cho sau y. Trong mt nhm sinh vin, mi sinh vin chn mt bi tp ring khng trng vi cc bn khc. Ring cc bi tp t 6 9 SV c php lp nhm gm 2 bn. Bi 1: (cn phi s dng 2 tin trnh c lp (khng phi cha - con), s dng cc c ch nh semaphores ng b c ghi) To ra 2 tin trnh, mt tin tr nh nhn d liu g vo t bn phm v ghi vo b nh dng chung (shared memory) khi nhn c k t xung dng. Tin trnh th hai c d liu trong b nh dng chung v ghi vo file. Ch khi tin trnh th nht ghi th tin trnh th 2 khng c php c, khi tin tr nh th hai c th tin trnh th nht khng c php ghi. Bi 2: (hai tin trnh phi c lp, khng phi tin trnh cha - con) Cng bi nh trn, tuy nhin hai tin trnh c v ghi khng giao tip vi nhau thng qua b nh dng chung m giao tip vi nhau thng qua UDP socket. Bi 3: (client v server c th va gi va nhn d liu ng thi, s dng hm select()) To ra mt chng trnh trao i cc bn tin text gia hai my tnh thng qua TCP socket: khi ngi s dng ti mt trong hai my tnh g mt bn tin text th ngi s dng pha bn kia s nhn c bn tin v hin th ln mt ca s trn mn hnh. Bi 4: (2 tin trnh P1 v P2 phi l 2 tin trnh c lp) Mt h thng tnh ton bao gm 3 tin trnh. Tin trnh th nht (P1) tnh ton chui sau: n 1 xn i 0 4i 1 Tin trnh th hai (P2) tnh ton chui sau: n 1 yn vi n 0 v y 0 0 i 1 4i 1 Tin trnh th ba (P3) in ra mn hnh chui z n x n y n , vi n=0, 1, 2, S dng 01 FIFO (vi c ch ng b ch s n) truyn cc tham s x n v y n t P1 v P2 cho P3. C nhn xt g v kt qu zn? Bi 5: To ra mt tin trnh tnh s Pi theo cng thc sau: 4 (1) i ; 2i 1 i 0 Khi bm Ctr-C th s in gi tr ca Pi, i ra mn hnh ng thi tin trnh s i ngi s dng g phm. Nu nhn c phm Q, tin trnh kt thc, nu khng tin tr nh tip tc tnh ton.

Bi 6: (email ngi gi phi nhp vo t bn phm) Thit k v lp trnh mt h thng client server thc hin cc chc nng sau: Client v server trao i thng tin vi nhau thng qua TCP socket. C 3 loi bn tin khc nhau: Bn tin hello (client server): Bn tin hello s gm 4 trng theo th t sau: o Trng nhn dng: l 1 chui gm 11 k t (k c k t NULL cui cng): dientu-K50. Nu chui k t nhn c khng ging vi chui k t k trn th c bn tin s b b qua. o Trng kch thc bn tin: cha mt s nguyn 32bit. Trng ny ch th di ca ton b bn tin hello. o Trng nhn dng bn tin: l mt s nguyn 32 bit, quy c trong bn tin hello th trng ny c gi tr 0. o Trng nhn dng ngi gi: trng ny cha email ca sinh vin lp trnh v k t NULL cui (th d tran_van_a@yahoo.com). Bn tin acknowledgement (server client): Khi nhn c bn tin hello, server s tr li client bng bn tin acknowledgement bao gm 5 trng: o Trng nhn dng: Tng t bn tin hello. o Trng kch thc bn tin: tng t bn tin hello. o Trng nhn dng bn tin: l mt s nguyn 32 bit, quy c trong bn t in acknowledgement th trng ny c gi tr 1. o Trng nhn dng client: trng ny tr li email ca sinh vin lp trnh m server nhn c trong bn tin hello. o Trng trng thi: l mt chui k t th hin trng thi server nh success hoc failed. Bn tin bye (client server): Khi nhn c bn tin acknowledgement, client s gi tr server bn tin bye bao gm 2 trng: o Trng nhn dng: Tng t bn tin hello. o Trng nhn dng bn tin: l mt s nguyn 32 bit, quy c trong bn tin bye th trng ny c gi tr 2. Pha client s gi bn tin hello n server khi chy chng trnh (c tn l client) theo c php sau: client <host-name of server> (a ch port ty do sinh vin t chn), khi nhn c hello, server s hin th email ngi gi, lu email ngi gi vo mt danh sch email (mt array c kiu string), sau tr li client bng bn tin acknowledgement vi trng trng thi l success nu vic lu email thnh cng, nu khng trng trng thi c ni dung l failed. Khi nhn c bn tin acknowledgement, client s hin th ni dung ca trng nhn dang client v trng trng thi ln mn hnh, gi bn tin bye sau ng socket. Server nhn c bn tin bye th hin th dng ch remote client closes socket sau cng ng socket tng ng vi client . Ch : cn s dng hm select(). Bi 7: Tng t bi 6, tuy nhin client v server trao i thng tin vi nhau thng qua UDP socket.

Bi 8: ping-udp (PHI C BIU TRNG THI CC BN TIN GI V NHN: TIMEOUT, S TH T, PHI GI CC GI LIN TIP TRC KHI NHN C REPLY T SERVER) To ra mt chng trnh tng t nh chng tr nh ping Linux/Unix/Windows, tuy nhin s dng UDP thay v ICMP. ng dng gm 2 phn: Ping client: gi cc g i UDP ngn vi 2 trng: (1) s th t gi l mt s nguyn (unsigned short); (2) trng time stamp cha 1 cu trc struct timeval. Trc khi gi gi t client n ping server, my client s gn mt nhn thi gian cha thi im gi gi. Khi nhn c cc gi phn hi t server, client ly thi im nhn c gi v t tnh c tr Round-Trip-Time (RTT) bng cch tr i time stamp, sau hin th ra mn hnh. Ping server: khi nhn c gi t client gi ti, n lin gi gi ngay lp tc tr li client va gi gi. Chng trnh c tn l ping-udp, c gi vi c php: ping-udp <a ch IP my ping server>:<a ch port> hoc ping-udp <tn my ping server>:<a ch port>. Bi 9: Chat relay server (nn support nhiu i client, c c ch register) Thit k v lp trnh mt h thng client server thc hin cc chc nng trao i cc bn tin di dng chui k t thng qua TCP socket. H thng gm cc phn: chat client v chat server. C 3 loi bn tin c trao i gia client v server: Connection setup: Khi mt ngi s dng nh dng lnh remote-chat <a ch IP server>:<a ch port> <a ch IP ca client b gi>:<a ch port>, mt kt ni TCP s c thit lp gia client v chat server. Sau khi kt ni TCP c thit lp, client gi bn tin connection setup, bao gm cc trng: o Trng nhn dng bn tin: l mt s nguyn 32 bit. Vi bn tin connection setup th trng ny c gi tr 0. o Trng a ch: di 6 bit bao gm a ch IP ca client b gi (4 bit) v a ch port ca client b gi (2 bit). Khi nhn c bn tin connection setup, server s thit lp mt kt ni TCP vi client b gi vi a ch IP v a ch port c ch ra trong bn tin connection setup. Data exchange: c s dng trao i d liu gia client v server. Bao gm cc trng: o Trng nhn dng bn tin: l mt s nguyn 32 bit. Vi bn tin data exchange th trng ny c gi tr 1. o Trng di d liu: l mt s nguyn ch ra di ca bn tin text. o Trng d liu: cha bn tin text cn trao i. Khi nhn c d liu c gi t mt client, chat server phi chuyn bn tin text n client pha bn kia, cng s dng bn tin data exchange. Connection teardown: khi ngi s dng bm Ctrl-C th bn tin connection teardown s c gi trc khi chng trnh pha client kt thc. Connection teardown gm 1 trng: o Trng nhn dng bn tin: l mt s nguyn 32 bit. Vi bn tin connection teardown th trng ny c gi tr 2.

Khi nhn c bn tin ny, chat server s gi bn tin n client tng ng, client sau khi nhn c connection teardown th hy b kt ni TCP vi server v kt thc chng trnh.

You might also like