socket
TRANSCRIPT
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
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.
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 );
}
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