Sunteți pe pagina 1din 5

Ministerul Educației, Culturii și Cercetării Universitatea Tehnică a Moldovei

Facultatea Calculatoare, Informatică și Microelectronică


Departamentul Ingineria Software și Automatică

RAPORT
la Lucrarea de Laborator Nr. 1
Programarea în Rețea
TEMA: Socket. HTTP. Multithreading.

A elaborat: st. gr. TI-172, Adasanu Gicu


A verificat: asistent universitar, Buldumac Oleg

Chișinău 2020
Sarcina lucrării:
1. Să se creeze o cerere(request) GET HTTP către web-serverul website-ului unite.md utilizînd
socket.
2. Cu ajutorul expresiilor regulate să se extragă toate imaginile din raspunsul primit din punctul 1.
3. Utilizînd Socket, HTTP și firele de execuții să se descarce toate imaginile găsite din puncul 2 într-
un folder.
Mersul lucrării:
Primul pas pe care va trebuie să-l face este să ridicăm o conexiune socket cu serverul de lca care vom
trimite un GET Request pentru a primi datele paginii în formă HTML.

Fig 1. Inițierea socket-ului și efectuarea request-ului.


Cum observăm am deschis un socket și prin intermediul unui buffer citim datele din răspuns.

Pasul următor este nevoie să citim datele din răspunsul primit și să găsim denumirea și path-ul
pentru fiecare imagine pentru a le putea accesa.

Fig 2. Determinarea imaginilor.


Deci cum observăm aici avem un regex care va indica formatul fiecărei imagini, după care vom face
căutarea în răspunsul primit și găsi path-ul fiecărei imagini.
După ce am găsit path-ul imaginii și denumirea ei vom crea thred-uri pentru fiecare imagine în parte
pentru a o descărca.

Fig 3. Multithreading.
Deci cum observăm aici se rulează un thread care vac rea url imaginii și prin intermediul stream
vom descărca imaginea pe byte și o vom salva în directoriul indicat.
Fig 4. Rularea codului.

Fig. 5 Rezultatul după rulare.

Întrebări:
Socket – reprezintă un nod în rețea a undei mașini. Fiecare mașină cînd se conecteză la internet
primește o adresă ip și astfel devine un socket care poate primi sau trimite careva requestu-uri sau
răspunsuri.
Scopul protocolului HTTP – este un protocol care permite transmiterea datelor subt formă de
HyperText.
Thred – (fir de execuție) reprezintă un proces care primește un set de instrucțiuni pe care trebuie să le
execute.
Diferența dintre TCP și UDP – protocolul TCP transmite datele strict fără de a pierde care biti. În caz
cînd pachetul este fragmentat transmiterea de la nod la nod se mai execută pînă nu se transmite pachetul
în întregime. Protocolul UDP trasmite pachetele fără a le verifica dacă biti au ajuns în întregime. Acest
protocol se utilizează cînd se deschide un websocket, sau se transmit fișiere audio video etc.
Ordinea în care octeții sunt secvențializați într-un protocol de rețea octet orientat se numește
rețeaua de octeți.
Stivele TCP/IP – Application layer, Transport Layer, Internet Layer, Network Access Layer
Nivele ISO/OSI – Application, Presentation, Session, Transport, Network, Data Link, Physical.
Conexiunea la un socket se face cu ajutorul ip și portului. Fiecare mașina are un ip public și un port
deschis pentru traficul TCP. Astfel după ce el este găsit în rețea se ridică conexiunea de la clientul a la b
indicînd ambii adresa sa și porturile pentru conexiune.
Metode HTTP – GET; PUT ; POST; DELETE; OPTIONS
Codul 200 – ok -: cererea efectuata cu succes
Codul 301 – modificat -: adresa uri a fost modificată.
Codul 302 – gasit -: se face redirectionarea pe alt uri
Codul 401 – neautorizat -: userul nu este autorizat
Codul 404 – negasit -: serverul nu este gasit.
Codul 405 – motoda nepermisa
Codul 500 – eroare interna de server.
HTTP securiza – pachetele tcp sunt encriptate in TLS sau SSL pentru a nu putea fi ascultate pe nod si
apoi citite. Pentru asta se genereaza cheia publica si cheia privata. Astfel clientul a comunica cu serverul
B avind cheia publica si cheia pe care o genereaza temporar.
Socket transmite pachetele TCP iar websocket TCP si UDP.
Deadlock se intimpla atunci cind firele de executie sunt dependente ciclic do o pereche de obiecte
sincronizate.

S-ar putea să vă placă și