Está en la página 1de 12

Aplica]ii de re]e a

APLICAII DE RETEA
Pach e t ul java.net Clase
ContentHandler DatagramPacket DatagramSocket DatagramSocketImpl HttpURLConnection InetAddress MulticastSocket ServerSocket Socket SocketImpl URL URLConnection URL ncoder URLStreamHandler

Excep]ii
!ind "ception Connect "ception Mal#ormedURL "ception $oRoute%oHost "ception Protocol "ception Socket "ception Unkno&nHost "ception Unkno&nService "ception

Interfe] e
ContentHandler'actor( 'ile$ameMap SocketImpl'actor( URLStreamHandler'actor(

Aplica]ii de re]e a

Folosire a adr e s elor IP (Inter n e t Protocol) Clasa InetAdress Furnize az !ec a ni s ! ul prin inter ! e di ul c ruia sunt !anip ul a t e adr e s el e IP" #etod e
)(te*+ getAddress, Returneaza adresa efectiva reprezentat\de obiectulrespectivntrun vector de 4 octe]i.Celmai semnificativoctet se g\se[te n getAddress( *.+. !"# *$%&' 4(' )*' +, + java.lang.String getHostAddress, Returneaz\ adresa efectiv\sub forma unui [ir-.d..d..d..d/ !"# -$%&.4(.)*.+,/ java.lang.String getHost$ame, Returneaz\ nu mele simbolical adresei respective static java.net.InetAddress getLocalHost, - t/ro&s java.net.Unkno&nHost "ception "0 "(12t/or.in#oiasi.ro )oolean isMulticastAddress, )oolean e3uals, java.lang.4)ject o)j static java.net.InetAddress*+ getAll!($ame, java.lang.String /ost t/ro&s java.net.Unkno&nHost "ception 0etermin\ toate adresele unui claculator.(0ac\ un calculatoreste conectat la mai m ulte re]ele el trebuie s\ aib\ c1te o adres\ 23 pentru fiecare re]ea la care este conectat .3arametrul host poate fi - fie nu mele ma[inii e"# 4ava.sun.com - fieun [irreprezent1nd adresa 23 a ma[inii static java.net.InetAddress get!($ame, java.lang.String /ost - t/ro&s java.net.Unkno&nHost "ception Construie[teadresa 23 a unui calculator. int /as/Code, java.lang.String toString, -

Intruc$ t ace s a t clas nu are constr uc t or pu%lic& pentr u a crea o inst an] a unui o%iect de tip InetAddress tre%ui e folosit una din !et o d el e static e ' getLocalHost5 getAll!($ame sau get!($ame5 care apel e a z la r$nd ul lor cnstr uct orii pri(a]i ai clas ei" Co!unic ar e a prin protoco al e orient a t e pe conexiun e )n protocol est e o co!%in a]i e de re*uli de co!u nic a]i e +i for!a t e de !es a, e car e tre%ui e resp e c t a t e de calculato a r el e le*at e -n re]e a pentr u a schi !% a dat e" .copul
2

Aplica]ii de re]e a

pri!ar al protoco al elor est e de a per !it e co!u nic a]i a -ntre calculato a r e & indifer e n t de re]e a sau de hard/ a r e0 ul calculato a r elor le*at e -n re]e a" 1 conexiun e repr ezint un can al si*ur de co!u nic a]i e -n re]e a& sta%ilit de c tre un protocol pentr u trans !i t e r e a corect +i -n ordine a !es a, elor -ntre calculato a r e " 1 conexiun e est e for!a t din dou fluxuri de dat e unidirec]ion al e folosite pentr u co!u nic a]i e precu ! +i din dou socluri (socket) car e per !it tri!it er e a & resp e c ti( rece p]ia dat elor" 1rice conexiun e est e unic det er !i n a t de cele dou socluri plasa t e la cele dou cap e t e ale conexiunii"
CONEXIUNE

Calculator

soclu

soclu canale de comunica]ie

Calculator

2ersiun e a stan d a r d de 3a(a folose+t e pentr u i!ple ! e n t a r e a co!u nic a]i ei pe %az de conexiuni protocolul TCP (Trans !i s sion Control protocol)& unul din protoco al el e de %az ale fa!iliei TCP4IP" #odul de lucru cu soclurile se -ncadr e a z -n !od elul client4s er ( e r de scrier e de aplica]ii& !od el -n car e aplica]iile se -!par t -n dou cat e * orii ' pro*r a ! e client 0 cele care ini]iaz con(er s a ]i a pro*r a ! e ser(er 0 cele care ofer ser(icii pro*r a ! el or client In (irtut e a aces t ui fapt& orice conexiun e -ntre dou pro*r a ! e care co!u nic prin re]e a est e det er !i n a t unic de 5 ele ! e n t e ' 6" adr e s a *azd ei pe care ruleaz aplica]ia client 7" nu ! r ul de port al aplica]iei client 8" adr e s a *azd ei pe care ruleaz aplica]ia ser(er 5" nu ! r ul de port pe care ser(er ul pri!e+ t e cer erile )n soclu 3a(a poat e lucra -n dou !oduri ' direct 0 i!plicit (suficient pentr u !a,orita t e a aplica]iilor)

Aplica]ii de re]e a

cu facilit ]i special e pe soclu& folosit de aplica]iile car e nec e sit co!u nic ar e a pest e un zid de prot e c]i e (fire/all) sau prin inter ! e di ul unui ser(er prox9 I!ple ! e n t a r e a unui soclu (client sau ser(er) se realize az prin extind e r e a clas ei a%str a c t e SocketImpl.#etod el e aces t ei clas e pun la dipozi]ie instru ! e n t e de co!u nic a]ie direct " Pentr u a crea un soclu cu facilit ]i special e est e nec e s a r redefinire a !et o d el elor din ace a s t clas "

Clasa SocketImpl 2aria%ile


protected java.io.'ileDescriptor #d %/e #ile descriptor o)ject #or t/is socket. protected java.net.InetAddress address %/e IP address o# t/e remote end o# t/is socket. protected int port %/e port num)er on t/e remote /ost to &/ic/ t/is socket is connected. protected int localport %/e local port num)er to &/ic/ t/is socket is connected.

#etod e
protected java.io.'ileDescriptor get'ileDescriptor, protected java.net.InetAddress getInetAddress, protected a)stract java.io.InputStream getInputStream, - t/ro&s java.io.I4 "ception protected int getLocalPort, protected a)stract java.io.4utputStream get4utputStream, - t/ro&s java.io.I4 "ception protected int getPort, java.lang.String toString, protected a)stract void accept, java.net.SocketImpl s t/ro&s java.io.I4 "ception Accept\realizarea unei cone"iuni protected a)stract int availa)le, - t/ro&s java.io.I4 "ception Returneaz\ nr de octe]icare pot ficiti] i f\r\a bloca cone"iunea protected a)stract void )ind, java.net.InetAddress /ost5 int port t/ro&s java.io.I4 "ception 5eag\ cone"iunea de un anu mit partener specificatprin adresa 23 si port protected a)stract void close, - t/ro&s java.io.I4 "ception Inc/ide o cone"iune protected a)stract void connect, java.net.InetAddress address5 int port

Aplica]ii de re]e a - t/ro&s java.io.I4 "ception Realizeaz\o cone"iune cu un anu mit partener protected a)stract void connect, java.lang.String /ost5 int port t/ro&s java.io.I4 "ception protected a)stract void create, )oolean stream - t/ro&s java.io.I4 "ception protected a)stract void listen, int )acklog - t/ro&s java.io.I4 "ception 6tabile[tenu m\rul ma"im de cone"iuni ad mise protected native java.lang.4)ject clone, - t/ro&s java.lang.Clone$otSupported "ception protected void #inali1e, - t/ro&s java.lang.%/ro&a)le

Pro*r a ! e de tip client Clasa Socket a%str a c tize a z no]iun e a de soclu client (nu !it -n *en er al soclu) +i est e respo n s a %il de !a,orit at e a oper a]iilor nec e s a r e co!u nic a]iei -n re]e a" Prin inst an]ier e a unui o%iect de tip Socket& pro*r a ! ul client poat e s ini]ieze o conexiun e (prin constr uc t or) +i s i!ple ! e n t e z e co!u nic a]ia prin re]e a" .truct ur a unei aplica]ii client %azat e pe conexiuni
$. 2ni]ial iz\r i %. Are facil it \ ] i speciale de soclu 7 0a 6c8imbare comportament prin 6oc9et2mpl &. Creare soclu de comunicare [istabilirecone"iune 4. :b]inere flu"uride comunicare cu partenerul (. 3relucr\ri specificeaplica]ieiclient ). !ste ultimul utilizatoral soclului7 0a 2nc8idere soclu *. ;aza final\a e"ecu]iei

Clasa Socket Constr uct ori


protected Socket, Creeaz\ o cone"iune f\r\niciun partener specificat protected Socket, java.net.SocketImpl impl t/ro&s java.net.Socket "ception pu)lic Socket, java.net.InetAddress address5 int port t/ro&s java.io.I4 "ception Creates a socket and connects it to t/e speci#ied port num)er at t/e speci#ied IP address. pu)lic Socket, java.lang.String /ost5 int port t/ro&s java.net.Unkno&nHost "ception5 java.io.I4 "ception pu)lic Socket, java.net.InetAddress /ost5 int port5 )oolean stream t/ro&s java.io.I4 "ception I# t/e stream argument is true5 t/is creates a stream socket. I# t/e stream argument is #alse5 it creates a datagram socket. pu)lic Socket, java.lang.String /ost5 int port5 )oolean stream t/ro&s java.io.I4 "ception

Aplica]ii de re]e a pu)lic Socket, java.lang.String /ost5 int port5 java.net.InetAddress localAddr5 int localPort t/ro&s java.io.I4 "ception %/e Socket &ill )ind,- to t/e local address and port supplied. pu)lic Socket, java.net.InetAddress address5 int port5 java.net.InetAddress localAddr5 int localPort t/ro&s java.io.I4 "ception

#etod e
java.net.InetAddress getInetAddress, java.io.InputStream getInputStream, - t/ro&s java.io.I4 "ception :b]ine flu"ulde intrare de la care pot ficititedatele din acest soclu. java.net.InetAddress getLocalAddress, int getLocalPort, java.io.4utputStream get4utputStream, - t/ro&s java.io.I4 "ception :b]ine flu"ulde ie[ireprin care pot fiscrise datele int getPort, static s(nc/roni1ed void setSocketImpl'actor(, java.net.SocketImpl'actor( #ac - t/ro&s java.io.I4 "ception int getSoLinger, - t/ro&s java.net.Socket "ception s(nc/roni1ed int getSo%imeout, - t/ro&s java.net.Socket "ception s(nc/roni1ed void setSo%imeout, int timeout t/ro&s java.net.Socket "ception )oolean get%cp$oDela(, - t/ro&s java.net.Socket "ception void set%cp$oDela(, )oolean on - t/ro&s java.net.Socket "ception s(nc/roni1ed void close, - t/ro&s java.io.I4 "ception void setSoLinger, )oolean on5 int val - t/ro&s java.net.Socket "ception java.lang.String toString, -

Pro*r a ! ul tip ser(er .er(er ul est e pro*r a ! ul car e ascult cer erile (enit e de la clien]i +i le ofer ser(iciul pentr u care a fost crea t" Identificar e a ser(er elor se face prin inter ! e di ul portului pe care ser(er ul a+te a p t cererile de conexiun e (enit e din part e a clien]ilor" #a,oritat e a ser(iciilor foart e des folosite -n Intern e t au asociat e porturi stan d a r diz a t e & pentr u a per !it e clien]ilor s oper ez e cu diferite ser(er e -n (eder e a o%]inerii unui ser(iciu" Exe!pl e de nu ! e r e de porturi stan d a r diz a t e ' .er(iciu Po+ta electronic Transfer de fi+iere Telnet Fin*er Port asociat 7: 76 78 ;<

Aplica]ii de re]e a

=== Ecou Execu]ie la dist an] (rexec) P1P8 (Post 1ffice Protocol)

>? ; :67 66?

Pri!ul lucru pe care tre% ui s 0 l fac un pro*r a ! ser(er est e s se asociez e portuluist a %ilit la !o ! e n t ul proiect rii aplica]iei +i s ini]ieze ascult ar e a cer erilor de ser(icii (enit e de la clien]i" Acest e lucruri se realize az prin constr uc t or ul clas ei ServerSocket& clas a care i!ple ! e n t e a z soclul pro*r a ! ul ui ser(er" )n lucru ese n]ial -n proiect ar e a unei aplica]ii ser(er est e faptul c ace a s t a tre%ui e constr uit -n a+a fel -nc$t s poat prelucr a -n par al el cer erile clien]ilor" Acest lucru se realize az prin folosire a !ai !ultor fire de exec u]i e& fiecar e fir de execu]i e ocup $ n d u0 se cu un sin*ur client" De ase ! e n e a est e pre( zut un !ec a ni s ! pentr u a li!ita nu ! r ul de cereri care pot fi prelucr a t e -n par al el +i deci +i nu ! r ul firelor de exec u]i e car e ruleaz la un !o ! e n t dat" I!plicit ace s t nu ! r est e :?& dar poat e fi specificat ca ar*u ! e n t al constr uct or ului" 1rice cer er e nou (a fi respins dac nu! r ul de cereri prelucr a t e are (aloar e a !axi ! specificat " .truct ur a unei aplica]ii ser(er %aza t e pe conexiuni
$. 2ni]ial iz\r i %. Are facil it \ ] i speciale de soclu 7 0a 6c8imbare comportament prin 6oc9et2mpl &. Creare soclu server pentru ascultare cereri 4. Ascultarea continu\7 <u 2nc8idere soclu ;aza final\ (. Ascultare cerericone"iuni ). Acceptare cerere [iob]inere soclu pentru comunicare *. Creare firde e"ecu]ie pentru tratarea cone"iunii +. 2ni]ial izarefirtratare cone"iune ,. 3relucrare conform\ cu protocolulte"tului $=. 2nc8idere soclu comunicare $$. >erminare firtratare cone"iune +. ?:> : 4

Aplica]ii de re]e a

Clasa ServerSocket Constr uct ori


pu)lic ServerSocket, int port - t/ro&s java.io.I4 "ception Creates a server socket on a speci#ied port. A port o# . creates a socket on an( #ree port. %/e ma"imum 3ueue lengt/ #or incoming connection indications ,a re3uest to connect- is set to 6.. pu)lic ServerSocket, int port5 int )acklog - t/ro&s java.io.I4 "ception pu)lic ServerSocket, int port5 int )acklog5 java.net.InetAddress )indAddr t/ro&s java.io.I4 "ception Create a server &it/ t/e speci#ied port5 listen )acklog5 and local IP address to )ind to. %/e )indAddr argument can )e used on a multi7/omed /ost #or a ServerSocket t/at &ill onl( accept connect re3uests to one o# its addresses. I# )indAddr is null5 it &ill de#ault accepting connections on an(8all local addresses. %/e port must )e )et&een . and 966:65 inclusive.

#etod e
java.net.InetAddress getInetAddress, int getLocalPort, static s(nc/roni1ed void setSocket'actor(, java.net.SocketImpl'actor( #ac t/ro&s java.io.I4 "ception s(nc/roni1ed int getSo%imeout, - t/ro&s java.io.I4 "ception s(nc/roni1ed void setSo%imeout, int timeout t/ro&s java.net.Socket "ception java.net.Socket accept, - t/ro&s java.io.I4 "ception void close, - t/ro&s java.io.I4 "ception java.lang.String toString, -

Co!unic a]ia folosind dat a * r a ! e Data *r a ! e l e repr ezint o cantit a t e de infor! a]ii tri!is prin inter ! e di ul unui pach e t indep e n d e n t fa] de alte infor! a]ii" Fiecar e pach e t est e trans !i s de la o !a+in la alta doar pe %aza infor! a]iilor con]inut e de el -nsu+i" Pach e t e tri!ise de la o destin a]ie c tre ace e a +i surs pot a,un* e pe rute diferite +i -n orice ordine" In cadr ul i!ple ! e n t rii stan d a r d 3a(a& dat a * r a ! e l e sunt trans p or t a t e prin re]e a folosind protot colul )DP ()ser Data *r a ! Protocol)& unul din protoco al el e de %az ale fa!iliei TCP4IP"
8

Aplica]ii de re]e a

A(ant a, e' (iteza de transf er !ai !ar e ada p t a r e a la condi]iile de !o ! e n t ale re]elei (con* e s tii& le* turi te ! p or a r indisponi%ile& etc) Deza( a n t a, e ' lucru !ai dificil Diferen] a fa] de co!u nic ar e a printr0 un can al si*ur oferit de !et o d a co!u nic a]i ei prin conexiuni est e c & folosind dat a *r a ! e & nu se sta%ile+t e o le* tur per ! a n e n t -ntre client +i ser(er" De fapt& chiar no]iunile de client +i ser(er -+i pierd se ! nifica]iile& -ntruc $ t a!% el e foloses c pentr u co!u nic ar e acel a+i tip de soclu& i!ple ! e n t a t de clas a DatagramSocket. Clientul (a fi aplica]ia car e -ncaps ul e a z o cantit a t e de dat e (cer er e) -ntr0 un pach e t +i o trans !i t e unui part e n e r & iar ser(er (a fi aplica]ia care pri!e+ t e pach e t e de tip cerer e +i retri!it e pach e t e cu r spun s u ri la cererile pri!it e" In cazul -n care un pach e t se pierd e& clientul (a retr a n s !i t e cer er e a dup un anu !it inter( al de ti!p" Pentr u dat a *r a ! e nu exist destin a]ii i!plicite& a+ad a r -n fiecar e dat a * r a ! tre%ui e specificat e' adr e s a destin a]i e nu ! r ul portului la car e se tri!it e dat a *r a ! a con]inut ul dat a * r a ! e i In 3a(a& aces e infor! a]ii sunt conc e n t r a t e -n o%iect e de tip
DatagramPacket.

.truct ur a unei aplica]ii %azat e pe dat a * r a ! e


$. 2ni]ial iz\r i %. Are facil it \ ] i speciale de soclu 7 0a 6c8imbare comportament prin 0atagram6oc9et2mpl &. Creare soclu datagrame 4. Care este ac]iunea urm\toare 7 >ransmisie 3roducere date 2ncapsulare date in pac8et >rimitere date Recep]ie Creare pac8et recep]ie date Recep]ie date 3relucrare date (. !ste ultimul utilizatoral soclului7 <u ?:>: 4

Aplica]ii de re]e a 0a 2nc8idere soclu ;aza final\

Clasa DatagramPacket Constr uct ori


public0atagram3ac9et( b@te*+ ibuf'intilengt8 Construie[teun obiect pentru recep]ionarea pac8etelorde lungime ilength.:bs# ilengt8 A B ibuf.lengt8 public0atagram3ac9et( b@te*+ ibuf'intilengt8'4ava.net.2netAddress iaddr' intiport Construie[teun obiect pentru trimiterea de pac8ete de lungime ilength spre gazda [i portulspecificate.

#etod e
s@nc8ronized 4ava.net.2netAddress getAddress( Returneaz\ adresa 23 la care datagrama este trimis\sau de la care a fost recep]ionat\ s@nc8ronized void setAddress( 4ava.net.2netAddress iaddr s@nc8ronized b@te*+ get0ata( Returneaz\ datele care sunt trimise sau care au fostrecep]ionate s@nc8ronized void set0ata( b@te*+ ibuf s@nc8ronized intget5engt8( Returneaz\ lungimea pac8etuluicare va fitrimis sau care a fost recep]ionat s@nc8ronized void set5engt8( intilengt8 s@nc8ronized intget3ort( Returneaz\ nu m\rul portuluila care datagrama este trimis\sau de la care a fostrecep]ionat\ s@nc8ronized void set3ort(intiport

Clasa DatagramSocket Constr uct ori


pu)lic DatagramSocket, - t/ro&s java.net.Socket "ception Constructs a datagram socket and )inds it to an( availa)le port on t/e local /ost mac/ine. pu)lic DatagramSocket, int port - t/ro&s java.net.Socket "ception Constructs a datagram socket and )inds it to t/e speci#ied port on t/e local /ost mac/ine. pu)lic DatagramSocket, int port5 java.net.InetAddress laddr t/ro&s java.net.Socket "ception Creates a datagram socket5 )ound to t/e speci#ied local address. %/e local port must )e )et&een . and 966:6 inclusive.

#etod e
java.net.InetAddress getLocalAddress, int getLocalPort, s(nc/roni1ed int getSo%imeout, - t/ro&s java.net.Socket "ception

10

Aplica]ii de re]e a s(nc/roni1ed void setSo%imeout, int timeout t/ro&s java.net.Socket "ception void close, s(nc/roni1ed void receive, java.net.DatagramPacket p t/ro&s java.io.I4 "ception void send, java.net.DatagramPacket p - t/ro&s java.io.I4 "ception

11

Aplica]ii de re]e a

Transfer ul de docu ! e n t e din === Adres el e prin care sunt localizat e docu ! e n t el e se nu! e s c )RL0uri ()nifor! Resourc e Locator)" Ele per !it identificar e a unic a unui docu ! e n t pe %aza ur! torilor par a ! e t ri ' protocolul prin car e se transf er docu ! e n t ul serverul care * zduie+t e docu ! e n t ul num\rul de port & dac est e diferit fa] de cel i!plicit folosit de protocol directorul -n care se afl docu ! e n t ul numele fi[ierului -n car e est e plasa t docu ! e n t ul #ai !ult& est e posi%il identificar e a chiar a unor sec]iuni din docu ! e n t ul resp e c ti(" Folosire a adr e s elor )RL se realize az prin inter ! e di ul clas ei URL. Clasa URL Constr uct ori
pu)lic URL, java.lang.String spec t/ro&s java.net.Mal#ormedURL "ception pu)lic URL, java.lang.String protocol5 java.lang.String /ost5 int port5 java.lang.String #ile t/ro&s java.net.Mal#ormedURL "ception ...

#etod e
#inal java.lang.4)ject getContent, - t/ro&s java.io.I4 "ception java.lang.String get'ile, java.lang.String getHost, int getPort, java.lang.String getProtocol, java.lang.String getRe#, static s(nc/roni1ed void setURLStreamHandler'actor(, java.net.URLStreamHandler'actor( #ac java.net.URLConnection openConnection, - t/ro&s java.io.I4 "ception #inal java.io.InputStream openStream, - t/ro&s java.io.I4 "ception )oolean same'ile, java.net.URL ot/er java.lang.String to "ternal'orm, java.lang.String toString, -

12

También podría gustarte