Extras din laborator
Scopul lucrării
Scopul acestei lucrări este insuşirea tehnicilor de programare în reţea utilizând socket-uri.
2. Consideraţii teoretice
Calculatoarele conectate in reţea comunică între ele utilizând protocoalele TCP (Transport Control Protocol) şi UDP (User Datagram Protocol) conform diagramei:
Figura 1. Nivelele de omunicare în reţea
Pentru realizarea unor programe care comunică in reţea în java, se utilizează clasele din pachetul java.net . Acest pachet oferă clasele necesare pentru realizarea unor programe de reţea independente de sistemul de operare.
In tabelul următor sunt prezentate principalele clase care sunt utilizate pentru construirea unor programe de reţea.
Class Scop
URL Reprezintă un URL
URLConnection Returnează continutul adresat de obiectele URL
Socket Crează un socket TCP
ServerSocket Crează un socket server TCP
DatagramSocket Crează un socket UDP
DatagramPacket Reprezintă o datagrama trimisă printr-un obiect DatagramSocket
InetAddress Reprezintă numele unui pc din reţea, respectiv IP-ul corespunzător
Java oferă două abordări diferite pentru realizarea de programe de reţea. Cele două abordări sunt asociate cu clasele:
- Socket, DatagramSocket şi ServerSocket
- URL, URLEncoder şi URLConnection
Programarea prin socket-uri reprezintă o abordare de nivel jos, prin care, două calculatoare pot fi conectate pentru a realiza schimb de date. Ca principiu de baza, programarea prin socketuri face posibilă comunicarea în mod full-duplex între client şi server. Comunicarea se face prin fluxuri de octeţi.
Pentru ca comunicarea să se desfăşoare corespunzător, programatorul va trebui să implementeze un protocol de comunicaţie (reguli de dialog), pe care clientul şi serverul îl vor urma.
Definitia socket-ului: Un socket reprezintă un punct de conexiune întro reţea TCPIP. Când două programe aflate pe două calculatoare în reţea doresc să comunice, fiecare dintre ele utilizează un socket. Unul dintre programe (serverul) va deschide un socket si va aştepta conexiuni, iar celălalt program (clientul), se va conecta la server şi astfel schimbul de informaţii poate începe. Pentru a stabili o conexiune, clientul va trebui să cunoască adresa destinaţiei ( a pc-ului pe care este deschis socket-ul) şi portul pe care socketul este deschis.
Principalele operaţii care sunt facute de socket-uri sunt:
- conectare la un alt socket
- trimitere date
- recepţionare date
- inchidere conexiune
- acceptare conexiuni
3. Desfăşurarea lucrării
3.1. Program client-server
Pentru realizarea unui program client-server se utilizează clasele ServerSocket şi Socket.
Programul server va trebui să deschidă un port şi să aştepte conexiuni. In acest scop este utilizată clasă ServerSocket. In momentul în care se crează un obiect ServerSocket se specifică portul pe care se va iniţia aşteptarea. Inceperea ascultării portuli se face apelând metoda accept(). In momentul în care un client s-a conectat, metoda accept() va returna un obiect Socket.
Preview document
Conținut arhivă zip
- Proiect Client-Server. Retele de Calculatoare.doc