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