Sei sulla pagina 1di 5

Sockets

Un socket es un punto de conexin entre procesos,


diseado especialmente para su uso en redes de ordenadores.
Permite tanto el envo como la recepcin de informacin, y puede residir en ordenadores
diferentes.
(Pascal, 2002)
Los sockets se crean dentro de un dominio
de comunicacin, igual ue un arc!ivo se
crea dentro un sistema de arc!ivos. "l
dominio de comunicacin nos dice dnde se
#"$%&
'( ) 0* + 20',
Alumno
%-ctor &mador
./0ue0 $a1rera
N Control
''0(0022
Semestre
(2mo
Materia
Programacin en
&m1iente $liente
3ervidor
Profesor
4iguel 5ngel 6rageda
Pia
Sockets
encuentran los procesos ue se van a intercomunicar, si dic!os procesos est/n dentro del mismo
sistema, el dominio de comunicacin ser/ AF_UNIX, si los procesos est/n en distintos sistemas y
-stos se encuentran unidos mediante una red 7$P89P, el dominio de comunicacin ser/ AF_INET.
("lectrnica, 20',)
Los sockets pueden ser de diversos tipos, incluso en el mismo sistema operativo, siendo los m/s
usuales los siguientes:
1. Datagrama: 3e 1asa en el protocolo de datagrama de usuario (U;P ) User
Datagram Protocol), ue no aseguran ue el flu<o 1idireccional de los datos siga una
secuencia, sea fia1le, o pueda estar duplicado. 3i los procesos se comportan como
clientes y servidores, no e=istir/n reuisitos especficos para el esta1lecimiento de la
cone=in, pero cada mensa<e enviado de1er/ contener la direccin del destino. $ada
operacin de envo o recepcin de la informacin en un socket de este tipo produce
un pauete entero ue se enva o reci1e de una sola ve0.
2. Datos en serie !Stream"#: 3e 1asa en alg>n protocolo com>n de comunicaciones
entre ordenadores, normalmente protocolo de control de transmisin (7$P )
$ransmission Control Protocol) ue proporciona seguridad en las comunicaciones en
cualuiera de las dos direcciones, al secuenciar los datos enviados evitando la
duplicacin de los datos. "n este modelo, la red divide los mensa<es en pauetes
cuyo tamao se 1asa en condiciones de eficiencia, sin ue el usuario tenga control
so1re los mismos. "l usuario ve los datos como una sucesin de 1ytes.
%. Sin formato !&a'"#: Proporciona al usuario el acceso a las comunicaciones entre
soc?ets a 1a<o nivel, evitando las a1stracciones ue ofrecen los modelos anteriores.
@ormalmente se 1asan en el tipo datagrama, aunue sus caractersticas depende
del protocolo ue se disee. "ste tipo de sockets no son de uso general sino
preferi1lemente para diseas nuevos protocolos de comunicaciones.
Los sockets se 1asan fundamentalmente en las siguientes operaciones:
socket (nodo, tipo, protocolo): $rea un socket del tipo dado en el ordenador
correspondiente, 1asando las comunicaciones en el protocolo indicado.
connect (socket): "l proceso se conecta al soc?et para enviar y reci1ir mensa<es.
listen (socket): Alouea al proceso ue la e<ecuta !asta ue otro intente conectase al
soc?et. Prepara a un socket para ue acepte la cone=in con otro y poder esta1lecer la
comunicacin deseada.
accept (socket): &cepta la cone=in solicitada desde otro proceso ue, normalmente,
reside en otro ordenador de la red y ue intenta conectarse al socket.
receive (socket, buffer, tamao): Lee los datos reci1idos en el socket al ue est/
conectado el proceso. Los datos ledos se almacenar/n en el 1uffer indicado.
send (socket, mensaje, tamao): "nva datos a trav-s del socket al ue est/ conectado
el proceso.
closet (socket): $ierra el soc?et ue est/ creado, desapareciendo como tal. 7odos los
datos almacenados en -l se pierden.
(Pascal, 2002)
(uncionamiento gen)rico Parte del ser*idor + Parte del cliente#.
@ormalmente, un ser*idor se e<ecuta so1re una computadora especfica y tiene un socket
ue responde en un puerto especfico. "l servidor >nicamente espera, escuc!ando a trav-s del
socket a ue un cliente !aga una peticin.
"n el lado de cliente, -ste conoce el nom1re de !ost de la m/uina en la cual el servidor se
encuentra e<ecutando y el n>mero de puerto en el cual el servidor est/ conectado. Para reali0ar
una peticin de cone=in, el cliente intenta encontrar al servidor en la m/uina servidora en el
puerto especificado.
3i todo va 1ien, el servidor acepta la cone=in. &dem/s de aceptar, el servidor o1tiene un nuevo
socket so1re un puerto diferente. "so se de1e a ue necesita un nuevo socket y, en
consecuencia, un n>mero de puerto diferente, para seguir atendiendo al socket original para
peticiones de cone=in mientras atiende las necesidades del cliente ue se conect.
Por la parte del cliente, si la cone=in es aceptada, un socket se crea de forma satisfactoria y
puede usarlo para comunicarse con el servidor. "s importante darse cuenta ue el socket en el
cliente no est/ utili0ando el n>mero de puerto usado para reali0ar la peticin al servidor. "n lugar
de esto, el cliente asigna un n>mero de puerto local a la m/uina en la cual est/ siendo e<ecutado.
&!ora el cliente y el servidor pueden comunicarse escri1iendo o leyendo en o desde sus
respectivos sockets.
(9nform/ticos, 20',)
,s-uema cliente.ser*idor con sockets orientados a cone/i0n
,s-uema cliente.ser*idor con sockets no orientados a cone/i0n
Aplicaci0n
Conclusiones

Potrebbero piacerti anche