4
UNI VERSIDAD REGI ONAL AUTÓNOMA DE LOS ANDES ‘‘ UNI ANDES’’ TE MA DEL DOCUMENTO: S OCKET ESTUDI ANTE: J ONATHAN I SRAEL SALGUERO FLORES. DOCENTE: BERNABÉ ORTEGA 2015 Puyo-Pastaza

Socket

Embed Size (px)

Citation preview

Page 1: Socket

UNI VERSI DAD REGI ONAL AUTÓNOMA DE LOS

ANDES ‘ ‘ UNI ANDES’ ’

TEMA DEL DOCUMENTO:

SOCKET

ESTUDI ANTE: JONATHAN I SRAEL SALGUERO FLORES.

DOCENTE: BERNABÉ ORTEGA

2015

Puyo-Pastaza

Page 2: Socket

I ntroducci ón

El paquet e j ava. net de l a pl ataf or ma J ava pr oporci ona una cl ase Socket, l a cual i mpl e ment a

una de l as partes de l a comuni caci ón bi di recci onal entre un pr ogra ma J ava y otro pr ogra ma en

l a red.

La cl ase Socket se si túa en l a parte más al ta de una i mpl e ment aci ón dependi ent e de l a

pl ataf or ma, ocul tando l os detall es de cual qui er si stema parti cul ar al pr ogra ma Java. Usando l a

cl ase j ava. net. Socket en l ugar de utilizar códi go nativo de l a pl ataf or ma, l os progra mas J ava

pueden co muni carse a través de l a r ed de una f or ma t otal ment e i ndependi ent e de l a

pl ataf or ma.

De f or ma adi ci onal, j ava. net i ncl uye l a cl ase ServerSocket, l a cual i mpl e ment a un socket el cual

l os servi dores pueden utilizar para escuchar y aceptar peti ci ones de conexi ón de cli entes.

Nuestro obj eti vo será conocer có mo utilizar l as cl ases Socket y ServerSocket. Por otra parte, si

i ntenta mos conectar a través de l a Web, l a cl ase URL y cl ases r el aci onadas ( URLConnecti on,

URLEncoder) son pr obabl ement e más apr opi adas que l as cl ases de sockets. Per o de hecho , l as

cl ases URL no s on más que una conexi ón a un ni vel más al to a l a Web y utlilizan como part e de

su i mpl e ment aci ón i nterna l os sockets.

Model o de comuni caci ones con Java

El model o de sockets más si mpl e es:

· El servi dor establ ece un puert o y espera durant e un ci erto ti empo (timeout

segundos), a que el cli ente establ ezca l a conexi ón. Cuando el cli ente s oli ci te una

conexi ón, el servi dor abri rá l a conexi ón socket con el mét odo accept().

· El cli ente establ ece una conexi ón con l a máqui na host a través del puert o que se

desi gne en puert o#

· El cli ente y el servi dor se co muni can con manej adores I nputStrea m y Out putStrea m

Nor mal ment e, un servi dor s e ej ecuta en una máqui na específi ca y ti ene un s ocket asoci ado a

un nú mer o de puert o específi co. El servi dor si mpl ement e espera a l a escucha en el socket a

que un cli ente se conecte con una peti ci ón. El cli ente conoce el no mbr e de l a máqui na s obr e l a

que está ej ecutándose el servi dor y el nú mer o de puert o al que está conectado. Soli ci tar una

conexi ón consi ste en i ntentar establ ecer una ci ta con el servi dor en el puert o de l a máqui na

servi dora.

SOCKET SERVI DOR

Si t odo va bi en, el servi dor acepta l a conexi ón. Per o ant es, el servi dor crea un nuevo s ocket en

un puert o di ferente. Es necesari o crear un nuevo s ocket ( y consecuent e ment e un nú mer o de

puert o di f erent e) de f or ma que en el socket ori gi nal se conti núe a l a escucha de l as peti ci ones

de nuevos cli entes mi entras se ati ende a l as necesi dades del cli ente conectado. En el cli ente, si

se acepta l a conexi ón, el socket se crea sati sfact ori a ment e y se puede utilizar para

comuni carse con el servi dor.

Page 3: Socket

SOCKET CLI ENTE

Un s ocket es el extre mo f i nal de un enl ace punt o- a-punt o que co muni ca a dos pr ogra mas

ej ecutándose en una red.

Los sockets si empr e están asoci ados a un nú mer o de puert o que es utilizado por TCP par a

i dentifi car l a apli caci ón a l a que está desti nada l a soli citud y poder redi ri gírsel a.

Apert ura de Sockets

Si esta mos pr ogra mando un CLI ENTE, el socket se abre de l a for ma:

Socket mi Cli ente; mi Cli ente = ne w Socket( " maqui na", nu mer oPuert o ); Donde maqui na es el

no mbr e de l a máqui na en donde esta mos i ntentando abri r l a conexi ón y nu meroPuert o es el

puert o ( un nú mer o) del servi dor que está corri endo s obr e el cual nos quer emos conectar.

Cuando se sel ecci ona un nú mer o de puert o, se debe t ener en cuent a que l os puert os en el

rango 0- 1023 están r eservados para usuari os con muchos pri vil egi os (super usuari os o r oot).

Est os puert os son l os que utilizan l os servi ci os estándar del si stema co mo emai l, ftp o htt p.

Para l as apli caci ones que se desarroll en, asegurarse de sel ecci onar un puert o por enci ma del

1023.

En el ej e mpl o ant eri or no se usan excepci ones; si n embar go, es una gran i dea l a capt ura de

excepci ones cuando se está trabaj ando con sockets. El mi s mo ej empl o quedarí a como:

Socket mi Cli ente;

try {

mi Cli ente = new Socket( "maqui na", nu mer oPuert o );

} catch( I OExcepti on e ) {

System. out. pri ntl n( e );

}

Si esta mos pr ogra mando un SERVI DOR, l a for ma de apert ura del socket es l a que

muestra el si gui ente ej empl o:

Socket mi Servi ci o;

try {

mi Servi ci o = new ServerSocket( numer oPuert o );

} catch( I OExcepti on e ) {

System. out. pri ntl n( e );

}

Page 4: Socket

A l a hora de l a i mpl e mentaci ón de un servi dor ta mbién necesita mos crear un obj et o

socket desde el ServerSocket para que esté atent o a las conexi ones que l e puedan realizar

cli entes potenci al es y poder aceptar esas conexi ones:

Socket socket Servi ci o = null;

try {

socket Servi ci o = mi Servi ci o. accept();

} catch( I OExcepti on e ) {

Syste m. out. pri ntl n( e );

}

BI BLI OGRAFÍ A

Un excel ente li bro para pr ogra maci ón avanzada en C s obre ent or no Uni x es " UNI X,

Pr ogra maci ón avanzada" de Fco. Manuel Már quez Garcí a, edi tori al ra- ma.

Ti enes una gui a bastante si mpl e, per o más det all ada de s ockets en

htt p:// www. arraki s. es/~dmr q/beej /i ndex. ht ml