Socket
Un socket es un mecanismo que permite la conexión entre distintos procesos, habitualmente se utilizan para establecer comunicaciones entre distintas máquinas que estén conectadas a través de la red.
Cuando utilizamos Sockets para comunicar procesos nos basamos en la arquitectura cliente y servidor. Así pues, estableceremos dos Sockets uno será la parte servidor y recibirá la transmisión del cliente y otro será la parte cliente que recibirá la respuesta del servidor.
Cómo funciona un Socket
El siguiente procedimiento muestra cómo funciona un Socket:
Primero: Tenemos que poner en funcionamiento el proceso que se encargará de recibir los datos, el cual estará a la espera de recibir la comunicación del cliente.
Segundo: Ejecutamos el proceso cliente, que será un socket encargado de enviar datos al servidor que se encuentra esperando nuestra conexión.
Tercero: Por último, el cliente realizará una petición al servidor y el servidor gestionará la respuesta que quiere darle. Y finalmente, el cliente recibirá la respuesta del servidor.
Tipos de Socket
Dependiendo el protocolo con el que vamos a realizar la conexión, tendremos dos tipos de Socket, los que utilizan el protocolo TCP, y los que utilizan el protocolo UDP.
El protocolo TCP tiene las siguientes características:
– Está orientado a la conexión.
– Garantiza la correcta transmisión de los ficheros.
– Mantiene el orden de los ficheros en la transmisión.
– Cuando llegan los paquetes el receptor emite un mensaje de recepción (ACK).
El protocolo UDP tiene las siguientes características:
– No está orientado a la conexión.
– Los datagramas o paquetes pueden viajar en cualquier orden.
– No garantiza que lleguen todos los paquetes.
En este artículo puedes ver un ejemplo de socket hecho en Java.