Tiny programs (C, C++, C#, ...)
File detail
File content
Adresářová služba (projekt do předmětu IPK)
===========================================
Po sestavení příkazem 'make' získáte dvojici spustitelných souborů -- 'client' a
'server'. 'server' načte ze zadaného souboru databázi a spustí konkurentní
server adresářové služby na požadovaném portu. 'client' se potom podle zadaných
parametrů dotazuje serveru na údaje z databáze. Pro komunikaci mezi clientem a
serverem jsou použity TCP sockety -- client a server tedy mouhou běžet na
různých počítačích v síti TCP/IP.
Použití
-------
server port_number db_file
port_numeber číslo portu, na kterém server naslouchá
db_file název textového souboru obsahující databázi
client -h host -p port [-NSLF] [-n name] [-s surname] [-l login] [-f faculty]
host IP nebo URL adresa serveru
port číslo portu, na kterém server naslouchá
-NSLF udává, které údaje má odpověď obsahovat a jejich pořadí
-n name vyhledávání podle jména
-s surname vyhledávání podle příjmení
-l login vyhledávání podle loginu
-f faculty vyhledávání podle fakulty
Pozn.: Jednotlivá kritéria je možná kombinovat. Musí být zadáno aspoň jedno
kritérium pro vyhledávání a aspoň jeden údaj ze skupiny [-NSLF]. Na pořadí
parametrů nezáleží. Výstup programu client je ve stejném tvaru jako soubor
databáze.
Sestavení a testování
---------------------
Pro sestavení stačí zadat příkaz 'make'. Pro testování je přípraven spustitelný
soubor 'test.sh', který provede také sestavení. V souboru 'test.txt' je vzorová
databáze, kterou používá testovací script. Je možné použít jakoukoliv jinou
databázi v tomto tvaru. Ukončení serveru se provádí zasláním signálu SIGTERM.
Po ukončení je na stderr vypsáná hláška informující o korektním ukončení serveru
a uvolnění zdrojů. Program byl testován architekturách linux-x86, linux-x64 a
FreeBSD.
Popis jednotlivých souborů
--------------------------
Makefile GNU makefile
server.cc(+.h) hlavni modul serveru
client.cc(+.h) hlavni modul clienta
netio.c(+.h) modul zapouzdrujici TCP vrstvu
test.sh script, který provede sestavení a základní testy
test.txt vzorová databáze
protocol.html popis aplikačního protokolu