Extras din proiect
Capitolul I:Introducere
Proiectul a fost realizat in Python si are la baza modelul client-server, bazat pe protocolul TCP.Dupa cum stim, intr-o aplicatie exista doua parti importante:partea de client care trimite cereri catre server si o parte de server care primeste cererile si raspunde la acestea.Pentru a diferentia pachetele pentru fiecare aplicatie, protocolul TCP adauga in componenta pachetelor trimise un numar unic.Aceste numere unice se numesc port numbers sau numerele porturilor. Port numbers sau numerele porturilor sunt adresate in diferite moduri, in functie de tipul mesajului, daca acesta este o cerere sau un raspuns.Programele server au porturi alocare static, in timp ce programele client isi aloca dinamic port numbers pentru fiecare conexiune.Aplicatia a fost realizata utilizand protocolul TCP fiind formata din doua programe: programul server, care asteapta cererile clientilor si programul client, care creaza o interfata,socket, pentru a initia o conexiune cu o aplicatie de tip server. Domeniul de comunicatie utilizat este AF_INET, acesta fiind folosit pentru comunicatii intre procese aflate pe aceeasi masina sau pe masini diferite. Soket-ul creat are o adresa asociata formata din adresa IP a masinii gazda si un port(numar local gazdei respective, fiind pe 16 biti). Socket-ul utilizat este SOCK_STREAM,deoarece am folosit o conexiune TCP, conexiune bazata pe fluxuri de octeti, fiabila, cu doua sensuri, transmiterea datelor realizandu-se corect si in intregime.
In programul server am asociat socket-ul cu adresa serverului folosind metoda bind(). Apoi serverul va apela listen() pentru a plasa socketul in mod pasiv,apoi in bucla si accept(), urmand sa accepte o cerere de conectare si sa primeasca datele in portiuni mici ca ulterior sa le retransmita. In final cand nu va mai primi date,nu va mai avea ce sa retransmita si se va inchide conexiunea prin close().
Programul client foloseste acelasi tip de socket(SOCK_STREAM) si acelasi domeniu de comunicatie(AF_INET). Clientul apeleaza socket() si foloseste metoda connect() pentru a atasa socketul direct la adresa de la distanta. Dupa ce conexiunea a fost stabilita,datele pot fi transmite prin socket cu sendall() si primite cu recv(), la fel ca in server.In while,clientul apeleaza recv() pana cand nu mai sunt date de transmis. In final, dupa ce iese din bucla while, se apeleaza metoda close() si se inchide socketul creat.
Capitolul II:Program Server
1.Cod Server
import socket
import sys #ofera acces unor variabile pentru a interactiona cu interpretorul
#1.Apel socket, definire domeniu de comunicatie si conexiune TCP
socket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
#2.Operatiunea bind(legare port) pentru asocierea socket-ului cu adresa serverului(Adresa este localhost, care se refera la serverul curent, iar numarul portului este 8080)
server_address=('localhost',8080);
print >>sys.stderr, 'Se conecteaza pe %s portul %s' % server_address
socket.bind(server_address)
Preview document
Conținut arhivă zip
- Retele de calculatoare.docx