Los sockets permiten la comunicación entre procesos, incluso en máquinas diferentes. Un socket es el punto de comunicación entre dos agentes (procesos) para enviar o recibir información, similar a un buzón o teléfono entre personas. Existen sockets de stream para TCP, datagrama para UDP, y raw para protocolos de bajo nivel. Los sockets también se clasifican por su dominio, como UNIX para comunicación intra-sistema o Internet para comunicación entre sistemas usando protocolos como TCP y UDP.
1. INSTITUTO TECNOLÓGICO SAN GABRIEL
1 POR: WILMER AGUEAR
LOS SOCKETS
Los sockets son mecanismos de comunicación entre procesos que permiten que un
proceso hable (emita o reciba información) con otro proceso incluso estando en
distintas máquinas.
Un socket es al sistema de comunicación entre ordenadores lo que un buzón o un
teléfono es alsistemade comunicación entre personas: un punto de comunicación entre
dos agentes (procesos o personas respectivamente) por el cual se puede emitir o recibir
información.
COMUNICACIÓN MEDIANTE SOCKETS
El Cliente actúa de la siguiente forma:
1 Establece una conexión con el servidor (Crea un socket con el servidor).
2 Mandar mensajes al servidor o Esperar un mensaje de él.(Consultas)
3 Esperar su respuesta o contestarle (existen casos en que este paso no es
necesario).
4 Repetir los pasos 2 y 3 mientras sea necesario.
5 Cerrar la conexión con el servidor.
El servidor actúa así:
1 Inicializa un puerto de comunicación, en espera de clientes que intenten
conectarse a él (Crea un serverSocket).
2 Una vez que se conecta alguien, crea un hilo de ejecución para este usuario
mientras que elthread principal vuelve al paso1. Estocomúnmente sehace para
que el servidor puede atender a varios clientes al mismo tiempo.
3 Se comunica con el cliente mediante el socket creado entre el cliente y él.
4 Espera que el cliente se vaya o lo bota el mismo servidor (Cierra el socket entre
ellos) y elimina el thread de comunicación entre ellos.
IMPLEMENTANDO DE UN SOCKET
En una Aplicación Cliente-Servidor un socket nos ayuda a representar las conexiones
entre un programa cliente y uno servidor. En el lado del cliente se utiliza la clase Socket
y en el del servidor el Server Socket para representar dichas conexiones.
TIPOS DE SOCKETS
El mecanismo de sockets está diseñado de forma genérica; un socket por sí mismo no
contiene información suficiente para describir la comunicación entre procesos. Los
sockets operan dentro de dominios de comunicación, que determinan el formato de
direcciones a utilizar y el protocolo de comunicación. Además el dominio difine si los
dos porcesos que se comunican se encuentran en el mismo sistema o en sistemas
2. INSTITUTO TECNOLÓGICO SAN GABRIEL
2 POR: WILMER AGUEAR
diferentes y cómo pueden ser direccionados. De esta forma un socket puede
clasificarse según su dominio y según el tipo de conexión que realice.
En función del tipo de conexión se dispone de varios tipos de socket, que describen la
forma en la que se transfiere información a través de ese socket: sockets stream,
sockets datagrama y sockets raw.
Los sockets stream son un servicio orientado a conexión donde los datos se
transfieren sin encuadrarlos en registros o bloques. Para establecer una
comunicación utilizando el protocolo TCP.
Los sockets datagrama son un servicio de transporte si conexión que utilizan el
protocolo de transporte UDP. Cada vez que se envían datagramas es necesario
enviar el descriptor del socket local y la dirección del socket que deve recibir el
datagrama. Por tanto, hay que enviar datos adicionales cada vez que se realice
una comunicación. Los datos se envían y reciben en paquetes cuya entrega no
está garantizada.
Los sockets raw dan acceso a la capa de software de red subyacente o a
protocolos de más bajo nivel. Se utilizan sobre todo para la depuración del
código de los protocolos. Los sockets raw proporcionan acceso al Internet
Control Message Protocol, ICMP, y se utiliza para comunicarse entre varias
entidades IP.
Con respecto a la clasificación en función del dominio, bajo Unix existen dos dominios:
uno para comunicaciones internas al sistem(dominio UNIX) y el otro para
comunicaciones entre sistemas (dominio Internet). El dominio UNIX (AF_UNIX) permite
una comunicación intrasistema entre procesos que corren en el mismo
microprocesador. Se permiten tanto los sockets stream como los datagrama; no se
permiten los sockets de tipo raw. El dominio Internet (AF_INET) soporta los protocolos
estándar de Internet TCP y UDP y se utiliza para comunicar procesos que corren en
distintos microprocesadores. Permite sockets stream, datagrama y raw.