label Referate autorenew 2025-09-29, 16:56 history_edu Gabriela
Comunicare prin socket-uriSocket-urile sunt folosite pentru transmiterea de date folosind protocolul TCP/IP. Ele sunt obiecte ce trebuie create la ambele capete ale conexiunii. Socket-urile client sunt obiecte de tipul clasei Socket, iar socket-urile server sunt obiecte de tipul clasei ServerSocket; ambele clase fac parte din pachetul java.net. Socket-urilor li se pot atasa un flux de intrare si unul de iesire, prin care pot receptiona/ transmite, date. Prezentam in continuare schema generala a lucrului cu socket-uri, apeland la facilitatile de intrare/iesire la nivel de octet.Un mod tipic de creare a unui socket client este urmatorul:try {Socket cs = null; cs = new Socket( "adresa ",nrport);DataInputStream is = new DataInputStream(cs.getInputStream());DataOutputStream os =new DataOutputStream(cs.getOutputStream());}catch(UnknownHostException e) { ... }catch(IOException e) { ... }unde adresa este adresa IP a serverului, iar nrport este numarul portului ales pentru comunicare. Socket-ului ii sunt atasate fluxul os ce va fi folosit pentru a transmite date serverului, precum si fluxul is ce va fi folosit pentru receptionarea datelor transmise de server. Un mod tipic de creare a unui socket server este urmatorul:ServerSocket ss = null; Socket cs = null;try {ss = new ServerSocket(nrport); // System.out.println( "Serverul a pornit ");}catch(IOException e) { ... }try {cs = ss.accept();DataInputStream is =new DataInputStream(cs.getInputStream());DataOutputStream os =new DataOutputStream(cs.getOutputStream());}catch(UnknownHostException e) { ... }catch IOException e) { ... }Observam ca pentru server nu este necesara precizarea unei adrese IP, ci numai a unui port, care trebuie sa coincida cu cel folosit de client.Metoda accept: se astepta ca un client sa incerce sa se lege la server; in momentul in care acest lucru se intampla si legatura s-a stabilit, metoda creeaza si intoarce un socket cs de tip client. Acestuia ii atasam un flux de intrare si unul de iesire.