Tema este impartita in mai multe fisiere:
-
fisiere luate din laborator (buffer.c, buffer.h, helpers.c, helpers.h)
-
fisiere pentru parsarea JSON (parson.c, parson.h)
-
fisiere create de mine (request.c, request.h, commands.c, commands.h, client.c, Makefile)
In fisierul request.c sunt implementate
fiecare tip de request HTTP (GET, POST,
DELETE, PUT). Aloc memorie pentru un
string (char *) si acolo copiez tot ce trebuie
pentru fiecare tip de request (host, cookies, token
de autentificare, date, url).
In fisierul commands.c sunt implementate
comenzile pe care server-ul le accepta.
Pentru fiecare comanda astept sa primesc de
la tastatura input-ul (daca este nevoie) si
creez pachetul HTTP corespunzator pentru fiecare
comanda. Trimit pachetul catre server si astept
raspunsul. Dupa ce am primit raspunsul, verific
daca acesta a venit cu eroare (are campul error
in date) sau nu. La finalul fiecarui comenzii,
parsez datele JSON (daca este cazul).
La comenzile login si login_admin salvez
cookie-ul de sesiune pe care il primesc de la
server.
In fisierul client.c exista functia main
unde deschid un socket pentru a putea trimite
pachete catre server. Dupa aceea, verific
intr-un while(1) comenzile care vin de la
tastatura si trimit catre server pachetul
corespunzator.