Na traženje općinstva, posve neobavezni zadatak s klijent-server tematikom:
Napišite klijentski i serverski program prema sljedećoj specifikaciji.
KLIJENT se spaja na IP adresu i port servera.
Adresa i port zadaju se kao argumenti komandne linije.
Nakon uspješnog spajanja klijent učitava liniju teksta sa
standardnog ulaza.
Pretpostavite da je najveća dopuštena duljina linije 42 znaka.
Linija teksta smije sadržavati isključivo znakove:
- mala i velika slova engleske abecede
- znamenke 0..9
- znakove .,:?'-/()"=+@
- jednostruki znak za razmak (tj. ne smije se uzastopno ponavljati).
Ako to nije slučaj, linija se odbacuje uz poruku o grešci, te se
učitava nova linija.
U protivnom, sva velika slova se pretvaraju u mala.
Klijent šalje serveru duljinu učitane linije (1 unsigned char).
Zatim, ako je učitana linija prazna (duljine 0), klijent prekida vezu
sa serverom i završava rad.
U protivnom, klijent šalje serveru pročitanu liniju teksta (bez
završnog nul-znaka).
Zatim, klijent čeka na odgovor servera.
Odgovor se sastoji od duljine povratnog niza znakova (1 unsigned
char), te niza znakova (bez završnog nul-znaka), koji predstavlja
kodiranje klijentskog niza Morseovim kôdom.
http://www.itu.int/rec/R-REC-M.1677-1-200910-I/
Klijent, po primitku odgovora, ispiše primljeni niz znakova
(tj. Morseov kôd), prekine vezu sa serverom i završi rad.
Navedeno kodiranje treba provesti tako da između dva susjedna Morseova
kôda (za dva dopuštena znaka) stoji jedan razmak, a između dvije
susjedne kodirane riječi dva razmaka. Kôd koristi znakove . i - za
kratke i duge signale, respektivno.
SERVER je višedretveni, i ako je implementiran kako slijedi ne
zahtijeva sinkronizaciju dretvi.
Početna dretva kreira serverski socket na portu zadanom na komandnoj
liniji, te prihvaća klijentske konekcije.
Po prihvaćanju svake pojedine konekcije glavna dretva kreira novu,
detached dretvu, koja odrađuje komunikaciju s klijentom.
Zadaća dretve je kodiranje klijentskog niza Morseovim kôdom i vraćanje
tog rezultata klijentu.
Detalji komunikacije opisani su pod KLIJENT.
Uputa za detached dretve: pogledajte funkcije za rad s atributima dretvi (kao vježbu snalaženja u POSIX threading dokumentaciji).
Na traženje općinstva, posve neobavezni zadatak s klijent-server tematikom:
Napišite klijentski i serverski program prema sljedećoj specifikaciji.
KLIJENT se spaja na IP adresu i port servera.
Adresa i port zadaju se kao argumenti komandne linije.
Nakon uspješnog spajanja klijent učitava liniju teksta sa
standardnog ulaza.
Pretpostavite da je najveća dopuštena duljina linije 42 znaka.
Linija teksta smije sadržavati isključivo znakove:
- mala i velika slova engleske abecede
- znamenke 0..9
- znakove .,:?'-/()"=+@
- jednostruki znak za razmak (tj. ne smije se uzastopno ponavljati).
Ako to nije slučaj, linija se odbacuje uz poruku o grešci, te se
učitava nova linija.
U protivnom, sva velika slova se pretvaraju u mala.
Klijent šalje serveru duljinu učitane linije (1 unsigned char).
Zatim, ako je učitana linija prazna (duljine 0), klijent prekida vezu
sa serverom i završava rad.
U protivnom, klijent šalje serveru pročitanu liniju teksta (bez
završnog nul-znaka).
Zatim, klijent čeka na odgovor servera.
Odgovor se sastoji od duljine povratnog niza znakova (1 unsigned
char), te niza znakova (bez završnog nul-znaka), koji predstavlja
kodiranje klijentskog niza Morseovim kôdom.
http://www.itu.int/rec/R-REC-M.1677-1-200910-I/
Klijent, po primitku odgovora, ispiše primljeni niz znakova
(tj. Morseov kôd), prekine vezu sa serverom i završi rad.
Navedeno kodiranje treba provesti tako da između dva susjedna Morseova
kôda (za dva dopuštena znaka) stoji jedan razmak, a između dvije
susjedne kodirane riječi dva razmaka. Kôd koristi znakove . i - za
kratke i duge signale, respektivno.
SERVER je višedretveni, i ako je implementiran kako slijedi ne
zahtijeva sinkronizaciju dretvi.
Početna dretva kreira serverski socket na portu zadanom na komandnoj
liniji, te prihvaća klijentske konekcije.
Po prihvaćanju svake pojedine konekcije glavna dretva kreira novu,
detached dretvu, koja odrađuje komunikaciju s klijentom.
Zadaća dretve je kodiranje klijentskog niza Morseovim kôdom i vraćanje
tog rezultata klijentu.
Detalji komunikacije opisani su pod KLIJENT.
Uputa za detached dretve: pogledajte funkcije za rad s atributima dretvi (kao vježbu snalaženja u POSIX threading dokumentaciji).
|